Skip to main content

Project

A Project is a NamedElement that serves as the container of an entire OntoUML ontology, including both the abstract syntax (the model elements) and the concrete syntax (the diagrams, views, and shapes). In practice the Project is the root of an exchanged document: it is the object you serialize to share a whole ontology. Alongside the identity and descriptive properties it inherits, it defines the following.

PropertyTypeDescription
type"Project"Discriminator; always "Project".
elementsarrayAll OntoUML elements — model elements, views, and diagrams — that make up the project.
rootid or nullThe root package containing all other model elements, if any.
publisherresource or nullThe agent responsible for making the project available.
designedForTasksresource[]The goals that motivated the project (e.g. OCMV modeling goals).
licenseresource or nullThe legal document under which the project is made available.
accessRightsresource[]Documents describing who may access the project and how.
themesresource[]Central themes of the project according to a theme taxonomy.
contextsresource[]The contexts in which the project was developed (e.g. OCMV contexts).
ontologyTypesresource[]The project's classification by scope (e.g. OCMV core/domain/application).
representationStyleresource or nullThe representation style — OntoUML style or UFO style.
namespacestring (uri) or nullBase URI for the ids of the project's elements.
landingPagesstring (uri)[]Web pages where the project can be accessed.
sourcesstring (uri)[]Resources that influenced the project (e.g. DOIs).
bibliographicCitationslanguageString[]Bibliographic references for the project.
keywordslanguageString[]Keywords describing the domain(s) the project covers.
acronymsstring[]Acronyms used to refer to the project.
languagesstring[]IANA language tags for the labels used in the project (e.g. "en", "pt").

Project also carries the identity properties id, created, and modified from OntoumlElement, and the descriptive properties name, alternativeNames, description, editorialNotes, creators, and contributors from NamedElement. Because every property is required, a Project with only type, id, and name is invalid — every property of its type must be present, even when its value is null or [].

The datatypes above are documented under id, resource, languageString, and pointInTime.

Controlled vocabularies

Several metadata properties — designedForTasks, contexts, ontologyTypes, and representationStyle — draw their values from the OntoUML/UFO Catalog Metadata Vocabulary (OCMV), which defines recommended values such as ocmv:Research, ocmv:Domain, and ocmv:OntoumlStyle. See the OntoUML Metamodel for the underlying conceptual specification.

Example​

A minimal but complete Project with a single class inside a root package:

{
"type": "Project",
"id": "project_1",
"name": { "en": "Project 1" },
"created": "2024-09-03",
"modified": "2024-09-04",
"alternativeNames": [],
"description": null,
"editorialNotes": [],
"creators": [],
"contributors": [],
"publisher": {
"name": { "en": "Publisher 1" },
"URI": "http://example.org/publisher1"
},
"license": {
"name": { "en": "CC BY 4.0" },
"URI": "https://creativecommons.org/licenses/by/4.0/"
},
"designedForTasks": [],
"accessRights": [],
"themes": [],
"contexts": [],
"ontologyTypes": [],
"representationStyle": null,
"namespace": null,
"landingPages": [],
"sources": [],
"bibliographicCitations": [],
"keywords": [],
"acronyms": [],
"languages": ["en"],
"root": "package_1",
"elements": [
{
"type": "Package",
"id": "package_1",
"name": { "en": "Root Package" },
"contents": ["class_1"],
"customProperties": null,
"created": "2024-09-03",
"modified": null,
"alternativeNames": [],
"description": null,
"editorialNotes": [],
"creators": [],
"contributors": []
},
{
"type": "Class",
"id": "class_1",
"name": { "en": "Person" },
"stereotype": "kind",
"isDerived": false,
"isAbstract": false,
"properties": [],
"literals": [],
"restrictedTo": ["functional-complex"],
"isPowertype": false,
"order": "1",
"customProperties": null,
"created": "2024-09-03",
"modified": null,
"alternativeNames": [],
"description": null,
"editorialNotes": [],
"creators": [],
"contributors": []
}
]
}