Skip to content

Commit 93936da

Browse files
authored
Merge pull request #8 from NFDI4Energy/develop
Multiple improvements: - Added enum lists in the json schema for different elements - Changed to allow multiple maintainer - Fixed data types for multiple elements - Added mango as an example - Added version number in schema files
2 parents 023311c + 859ec63 commit 93936da

File tree

8 files changed

+2556
-461
lines changed

8 files changed

+2556
-461
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
/.vs
2+
/scripts/Validate_ERSmeta

README.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,16 @@ The metadata schema is based on an [extensive requirement analysis](https://ecea
4343
We welcome help to improve the schema and/or its documentation!
4444
Please open up [issues](https://github.com/NFDI4Energy/ERSmeta/issues) or send us a pull request if you have any updates to our schema or crosswalks!
4545

46+
## Hints on Validating Metadata against the Metadata Schema
47+
If you have metadata as RDF or JSON and want to validate it against the schema we recommend the following tools:
48+
* RDF - SHACL validation: https://shacl-playground.zazuko.com/
49+
* JSON - JSON schema validation: https://www.jsonschemavalidator.net/
50+
51+
## Information for Developers
52+
We recommend the following tools for testing and verifying during the development:
53+
* For JSON-LD: https://json-ld.org/playground/
54+
55+
4656
## License
4757
ERSmeta is released under the [CC0 1.0 Universal](https://spdx.org/licenses/CC0-1.0) license.
4858

examples/mango/ersmeta.json

Lines changed: 298 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,298 @@
1+
{
2+
"@context": "https://github.com/NFDI4Energy/ERSmeta/blob/main/schema/ersmeta.jsonld",
3+
"name": "mango",
4+
"acronym": "mango",
5+
"logo": "https://github.com/OFFIS-DAI/mango/logo.png",
6+
"softwareVersion": "2.1.5",
7+
"programmingLanguage": [ "Python" ],
8+
"inLanguage": [ "en-US" ],
9+
"abstract": "Modular Python-based agent framework to implement multi-agent systems",
10+
"description": "mango (modular python agent framework) is a python library for multi-agent systems (MAS). It is written on top of asyncio and is released under the MIT license. mango allows the user to create simple agents with little effort and in the same time offers options to structure agents with complex behaviour. The main features of mango are: Container mechanism to speedup local message exchange; Message definition based on the FIPA ACL standard; Structuring complex agents with loose coupling and agent roles; Built-in codecs: JSON and protobuf; Supports communication between agents directly via TCP or via an external MQTT broker",
11+
"keywords": [
12+
"agent",
13+
"agent-based",
14+
"agent-based-control",
15+
"agent-based-simulation",
16+
"distributed-computing",
17+
"distributed-systems",
18+
"multi-agent-systems"
19+
],
20+
"domain": [ "Computer Science", "Electrical Engineering and Information Technology" ],
21+
"category": [ "Control strategies for energy systems" ],
22+
"softwareType": [ "Library" ],
23+
"roleInResearch": [ "Modeling and Simulation", "Agent-based Modeling", "Proof-of-Concept Software" ],
24+
"developmentStatus": "Active",
25+
"developerStructure": [ "Local Research Group", "Community (Open Source Research Software)" ],
26+
"cycleOfUpdates": "Monthly",
27+
"issueTracker": "https://github.com/OFFIS-DAI/mango/issues",
28+
"referencePublication": [
29+
{
30+
"identifier": "https://doi.org/10.1016/j.softx.2024.101791"
31+
}
32+
],
33+
"preferredCitation": {
34+
"identifier": "https://doi.org/10.1016/j.softx.2024.101791"
35+
},
36+
"license": [
37+
{
38+
"identifier": "MIT",
39+
"name": "MIT License"
40+
}
41+
],
42+
"copyrightHolder": [
43+
{
44+
"legalName": "OFFIS e.V.",
45+
"identifier": "https://ror.org/003sav189"
46+
}
47+
],
48+
"isAccessibleForFree": true,
49+
"dateCreated": "2020-09-25",
50+
"dateModified": "2025-04-09",
51+
"contributor": [
52+
{
53+
"givenName": "Alexander",
54+
"familyName": "Hill",
55+
"email": [ "alexander.hill@offis.de" ],
56+
"identifier": "https://orcid.org/0000-0002-9270-9871",
57+
"roleName": [
58+
"Coding"
59+
]
60+
},
61+
{
62+
"givenName": "Emilie",
63+
"familyName": "Frost",
64+
"email": [ "emilie.frost@offis.de" ],
65+
"identifier": "https://orcid.org/0000-0003-4791-2333",
66+
"roleName": [
67+
"Coding"
68+
]
69+
},
70+
{
71+
"givenName": "Florian",
72+
"familyName": "Maurer",
73+
"email": [ "maurer@fh-aachen.de" ],
74+
"identifier": "https://orcid.org/0000-0001-8345-3889",
75+
"roleName": [
76+
"Coding",
77+
"Maintenance"
78+
]
79+
},
80+
{
81+
"givenName": "Jens",
82+
"familyName": "Sager",
83+
"email": [ "jens.sager@offis.de" ],
84+
"identifier": "https://orcid.org/0000-0001-6352-4213",
85+
"roleName": [
86+
"Coding",
87+
"Architecture"
88+
]
89+
},
90+
{
91+
"givenName": "Rico",
92+
"familyName": "Schrage",
93+
"email": [ "rico.schrage@uni-oldenburg.de" ],
94+
"identifier": "https://orcid.org/0000-0001-5339-6553",
95+
"roleName": [
96+
"Coding",
97+
"Maintenance",
98+
"Architecture"
99+
]
100+
},
101+
{
102+
"givenName": "Marvin",
103+
"familyName": "Werner-Nebel",
104+
"roleName": [
105+
"Coding",
106+
"Architecture",
107+
"Maintenance",
108+
"Management"
109+
]
110+
},
111+
{
112+
"givenName": "Stefanie",
113+
"familyName": "Holly",
114+
"email": [ "stefanie.holly@offis.de" ],
115+
"identifier": "https://orcid.org/0009-0005-6965-1877",
116+
"roleName": [
117+
"Management"
118+
]
119+
},
120+
{
121+
"givenName": "Jan Philipp",
122+
"familyName": "Hörding",
123+
"email": [ "jan.philipp.hoerding@offis.de" ],
124+
"roleName": [
125+
"Documentation"
126+
]
127+
}
128+
],
129+
"author": [
130+
{
131+
"givenName": "Jens",
132+
"familyName": "Sager",
133+
"email": [ "jens.sager@offis.de" ],
134+
"identifier": "https://orcid.org/0000-0001-6352-4213"
135+
},
136+
{
137+
"givenName": "Rico",
138+
"familyName": "Schrage",
139+
"email": [ "rico.schrage@uni-oldenburg.de" ],
140+
"identifier": "https://orcid.org/0000-0001-5339-6553"
141+
},
142+
{
143+
"givenName": "Stefanie",
144+
"familyName": "Holly",
145+
"email": [ "stefanie.holly@offis.de" ],
146+
"identifier": "https://orcid.org/0009-0005-6965-1877"
147+
}
148+
],
149+
"maintainer": [
150+
{
151+
"givenName": "Rico",
152+
"familyName": "Schrage",
153+
"email": [ "rico.schrage@uni-oldenburg.de" ],
154+
"identifier": "https://orcid.org/0000-0001-5339-6553"
155+
},
156+
{
157+
"givenName": "Florian",
158+
"familyName": "Maurer",
159+
"email": [ "maurer@fh-aachen.de" ],
160+
"identifier": "https://orcid.org/0000-0001-8345-3889"
161+
}
162+
],
163+
"sourceOrganization": [
164+
{
165+
"legalName": "OFFIS e.V.",
166+
"identifier": "https://ror.org/003sav189"
167+
}
168+
],
169+
"countryOfOrigin": [ "DE" ],
170+
"funding": [
171+
{
172+
"funder": [
173+
{
174+
"legalName": "Deutsche Forschungsgemeinschaft (DFG)",
175+
"identifier": "https://ror.org/018mejw64"
176+
}
177+
],
178+
"grantNo": "359941476",
179+
"projectName": "Vermeidung von emergierenden Controller-Konflikten in multimodalen Smart Energy Systems"
180+
},
181+
{
182+
"funder": [
183+
{
184+
"legalName": "Volkswagen Foundation",
185+
"identifier": "https://ror.org/03bsmfz84"
186+
},
187+
{
188+
"legalName": "Niedersächsisches Ministerium für Wissenschaft und Kultur",
189+
"identifier": "https://ror.org/0116z8r77"
190+
}
191+
],
192+
"grantNo": "11-76251-13-3/19 – ZN3488",
193+
"projectName": "Zukunftslabor Energie (ZLE)"
194+
}
195+
],
196+
"downloadUrl": "https://pypi.org/project/mango-agents/",
197+
"codeRepository": "https://github.com/OFFIS-DAI/mango",
198+
"documentation": [ "https://mango-agents.readthedocs.io/en/latest/index.html" ],
199+
"readme": "https://raw.githubusercontent.com/OFFIS-DAI/mango/master/README.md",
200+
"buildInstruction": "https://mango-agents.readthedocs.io/en/latest/installation.html",
201+
"supportGiven": true,
202+
"requiredTrainingPeriod": "1 week",
203+
"example": [
204+
{
205+
"additionalType": "Minimal",
206+
"name": "Getting Started",
207+
"url": "https://mango-agents.readthedocs.io/en/latest/getting_started.html"
208+
},
209+
{
210+
"additionalType": "Long",
211+
"name": "Tutorial",
212+
"url": "https://mango-agents.readthedocs.io/en/latest/tutorial.html"
213+
}
214+
],
215+
"communityInteractions": [
216+
{
217+
"additionalType": "Github discussions",
218+
"url": "https://github.com/OFFIS-DAI/mango/discussions"
219+
},
220+
{
221+
"additionalType": "Issues",
222+
"url": "https://github.com/OFFIS-DAI/mango/issues"
223+
}
224+
],
225+
"usedInPublication": [
226+
{
227+
"identifier": "https://doi.org/10.1145/3666043.3666046"
228+
},
229+
{
230+
"identifier": "https://doi.org/10.1016/j.softx.2024.101667"
231+
},
232+
{
233+
"identifier": "https://doi.org/10.1186/s42162-024-00464-7"
234+
},
235+
{
236+
"identifier": "https://doi.org/10.1109/CIEES62939.2024.10811119"
237+
},
238+
{
239+
"identifier": "https://doi.org/10.1007/s41109-023-00553-8"
240+
},
241+
{
242+
"identifier": "https://doi.org/10.1145/3447555.3465415"
243+
},
244+
{
245+
"identifier": "http://doi.org/10.15439/2021F60"
246+
}
247+
],
248+
"compatibleSoftware": [
249+
{
250+
"name": "Cosima",
251+
"url": [ "https://cosima.offis.de/" ]
252+
},
253+
{
254+
"name": "mosaik",
255+
"url": [ "https://mosaik.offis.de/" ]
256+
}
257+
],
258+
"purpose": [ "Simulation", "Analysis", "Support of agent based architectures", "Support for communcation simulations of distributed systems" ],
259+
"method": [ "agent-based modeling" ],
260+
"coversSector": [ "ICT" ],
261+
"useCase": [ "Energy market analysis", "Control strategies for energy systems", "Distributed optimization" ],
262+
"limitation": [ "Limited to smaller systems" ],
263+
"featureList": [ "Structuring complex agents with loose coupling and agent roles", "Supports communication between agents directly via TCP or via an external MQTT broker", "Built-in codecs: JSON and protobuf", "Message definition based on the FIPA ACL standard", "Container mechanism to speedup local message exchange" ],
264+
"tests": [
265+
{
266+
"collectionSize": "4",
267+
"url": [ "https://github.com/OFFIS-DAI/mango/tree/development/tests/integration_tests" ]
268+
},
269+
{
270+
"collectionSize": "15",
271+
"url": [ "https://github.com/OFFIS-DAI/mango/tree/development/tests/unit_tests" ]
272+
}
273+
],
274+
"typicalHardware": [ "Laptop" ],
275+
"typicalExecutionTime": [ 1.0 ],
276+
"processorRequirements": "x86_64",
277+
"memoryRequirements": "8GB",
278+
"storageRequirements": "500MB",
279+
"parallelizationCapability": true,
280+
"targetProduct": [ "Python 3.10", "Python 3.11", "Python 3.12", "Python 3.13" ],
281+
"operatingSystem": [ "Microsoft Windows", "Linux", "MacOS" ],
282+
"softwareRequirements": [
283+
"paho-mqtt>=2.1.0",
284+
"python-dateutil>=2.9.0",
285+
"dill>=0.3.8",
286+
"protobuf==5.27.2",
287+
"networkx>=3.4.1"
288+
],
289+
"fileSize": "136KB",
290+
"metadataVersion": "0.8",
291+
"sdLicense": [
292+
{
293+
"identifier": "CC0-1.0",
294+
"name": "Creative Commons Zero v1.0 Universal"
295+
}
296+
],
297+
"sdPublisher":"OFFIS e.V."
298+
}

0 commit comments

Comments
 (0)