diff --git a/.github/workflows/transform_ontology.yml b/.github/workflows/transform_ontology.yml deleted file mode 100644 index 54b24ae..0000000 --- a/.github/workflows/transform_ontology.yml +++ /dev/null @@ -1,99 +0,0 @@ -name: transform UML model -on: - push: - branches: - - "**" - paths: -# - "implementation/demo_ontology/xmi_conceptual_model/demo_ontology_CM.xml" -# - "implementation/demo_ontology_module/xmi_conceptual_model/demo_ontology_module_CM.xml" - - "implementation/core_person/xmi_conceptual_model/core_person_CM.xml" - - "implementation/core_location/xmi_conceptual_model/core_location_CM.xml" - - "implementation/core_public_organisation/xmi_conceptual_model/core_public_organisation_CM.xml" - -jobs: - transform: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@master - with: - ref: ${{ github.ref }} - - - name: get model2owl - run: | - git clone https://github.com/OP-TED/model2owl.git - pwd - - - name: get-saxon - run: pwd && cd model2owl && make get-saxon - - - name: get-rdflib - run: cd model2owl && make create-virtual-env && make get-rdflib - - - name: transform step - run: | - AVAILABLE_IMPLEMENTATIONS=(core_person core_location core_public_organisation) - for implementation in "${AVAILABLE_IMPLEMENTATIONS[@]}" - do - echo "-------------------${implementation} transform---------------------------------" - sed -i "s/test\/ePO-default-config/..\/implementation\/${implementation}\/model2owl-config/g" model2owl/config-proxy.xsl - cat model2owl/config-proxy.xsl - - - CM_FILE_NAME=$(echo "${implementation}_CM.xml") - CM_FILE_PATH=$(echo "implementation/$implementation/xmi_conceptual_model/${CM_FILE_NAME}") - OUTPUT_PATH_OWL=$(echo "implementation/$implementation/owl_ontology/") - OUTPUT_PATH_SHACL=$(echo "implementation/$implementation/shacl_shapes/") - - ls -la implementation/$implementation/xmi_conceptual_model/ - echo "CM_FILE_PATH is $CM_FILE_PATH" - echo "OUTPUT_PATH_OWL is $OUTPUT_PATH_OWL" - echo "OUTPUT_PATH_SHACL is $OUTPUT_PATH_SHACL" - - - cd model2owl - ls -la - echo "+++++++++++++++++transform to rdf++++++++++++++++++++++++++++" - make owl-core XMI_INPUT_FILE_PATH=../$CM_FILE_PATH OUTPUT_FOLDER_PATH=../$OUTPUT_PATH_OWL - make owl-restrictions XMI_INPUT_FILE_PATH=../$CM_FILE_PATH OUTPUT_FOLDER_PATH=../$OUTPUT_PATH_OWL - make shacl XMI_INPUT_FILE_PATH=../$CM_FILE_PATH OUTPUT_FOLDER_PATH=../$OUTPUT_PATH_SHACL - - echo "+++++++++++++++++transform to turtle++++++++++++++++++++++++++++" - echo $(ls ${OUTPUT_PATH_OWL}*.rdf) - make convert-rdf-to-turtle ONTOLOGY_FOLDER_PATH=../$OUTPUT_PATH_OWL - echo $(ls ${OUTPUT_PATH_SHACL}*.rdf) - make convert-rdf-to-turtle ONTOLOGY_FOLDER_PATH=../$OUTPUT_PATH_SHACL - echo "-------------------end transform---------------------------------" - - sed -i "s/..\/implementation\/${implementation}\/model2owl-config/test\/ePO-default-config/g" config-proxy.xsl - cd .. - done - shell: bash - - - name: remove unnecessary files - run: | - sudo rm -rf model2owl - shell: bash - - - name: commit files - id: commit - run: | - git config --local user.email "action@github.com" - git config --local user.name "github-actions" - git pull - git status - - git add . - if [ -z "$(git status --porcelain)" ]; then - echo "::set-output name=push::false" - else - git commit -m "Adding transformation files" - echo "::set-output name=push::true" - fi - shell: bash - - - name: Push changes - if: steps.commit.outputs.push == 'true' - uses: ad-m/github-push-action@master - with: - github_token: ${{ secrets.GITHUB_TOKEN }} - branch: ${{ github.ref }} \ No newline at end of file diff --git a/.github/workflows/generate_conventions_and_glossary.yml b/.github/workflows/transform_with_model2owl.yml similarity index 53% rename from .github/workflows/generate_conventions_and_glossary.yml rename to .github/workflows/transform_with_model2owl.yml index ccfc4dc..28a0529 100644 --- a/.github/workflows/generate_conventions_and_glossary.yml +++ b/.github/workflows/transform_with_model2owl.yml @@ -1,4 +1,4 @@ -name: generate conventions and glossary +name: transform UML model on: push: branches: @@ -9,7 +9,6 @@ on: - "implementation/core_person/xmi_conceptual_model/core_person_CM.xml" - "implementation/core_location/xmi_conceptual_model/core_location_CM.xml" - "implementation/core_public_organisation/xmi_conceptual_model/core_public_organisation_CM.xml" - jobs: report_and_glossary: runs-on: ubuntu-latest @@ -22,7 +21,7 @@ jobs: - name: get model2owl run: | - git clone https://github.com/OP-TED/model2owl.git + git clone --branch 2.2.0 https://github.com/OP-TED/model2owl.git pwd - name: get-saxon @@ -73,7 +72,7 @@ jobs: done ls merge-xmis - make merge-xmi FIRST_XMI_TO_BE_MERGED_FILE_PATH=merge-xmis/core_person_CM.xml + make merge-xmi FIRST_XMI_TO_BE_MERGED_FILE_PATH=merge-xmis/demo_ontology_CM.xml echo "merged XMI file" ls output/combined-xmi @@ -89,6 +88,93 @@ jobs: sudo rm -rf model2owl shell: bash + - name: commit files + id: commit + run: | + git config --local user.email "action@github.com" + git config --local user.name "github-actions" + git pull + git status + + git add . + if [ -z "$(git status --porcelain)" ]; then + echo "::set-output name=push::false" + else + git commit -m "Adding convention report and glossary files" + echo "::set-output name=push::true" + fi + shell: bash + + - name: Push changes + if: steps.commit.outputs.push == 'true' + uses: ad-m/github-push-action@master + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + branch: ${{ github.ref }} + transform: + needs: report_and_glossary + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@master + with: + ref: ${{ github.ref }} + + - name: get model2owl + run: | + git clone --branch 2.2.0 https://github.com/OP-TED/model2owl.git + pwd + + - name: get-saxon + run: pwd && cd model2owl && make get-saxon + + - name: get-rdflib + run: cd model2owl && make create-virtual-env && make get-rdflib + + - name: transform step + run: | + AVAILABLE_IMPLEMENTATIONS=(core_person core_location core_public_organisation) + for implementation in "${AVAILABLE_IMPLEMENTATIONS[@]}" + do + echo "-------------------${implementation} transform---------------------------------" + sed -i "s/test\/ePO-default-config/..\/implementation\/${implementation}\/model2owl-config/g" model2owl/config-proxy.xsl + cat model2owl/config-proxy.xsl + + + CM_FILE_NAME=$(echo "${implementation}_CM.xml") + CM_FILE_PATH=$(echo "implementation/$implementation/xmi_conceptual_model/${CM_FILE_NAME}") + OUTPUT_PATH_OWL=$(echo "implementation/$implementation/owl_ontology/") + OUTPUT_PATH_SHACL=$(echo "implementation/$implementation/shacl_shapes/") + + ls -la implementation/$implementation/xmi_conceptual_model/ + echo "CM_FILE_PATH is $CM_FILE_PATH" + echo "OUTPUT_PATH_OWL is $OUTPUT_PATH_OWL" + echo "OUTPUT_PATH_SHACL is $OUTPUT_PATH_SHACL" + + + cd model2owl + ls -la + echo "+++++++++++++++++transform to rdf++++++++++++++++++++++++++++" + make owl-core XMI_INPUT_FILE_PATH=../$CM_FILE_PATH OUTPUT_FOLDER_PATH=../$OUTPUT_PATH_OWL + make owl-restrictions XMI_INPUT_FILE_PATH=../$CM_FILE_PATH OUTPUT_FOLDER_PATH=../$OUTPUT_PATH_OWL + make shacl XMI_INPUT_FILE_PATH=../$CM_FILE_PATH OUTPUT_FOLDER_PATH=../$OUTPUT_PATH_SHACL + + echo "+++++++++++++++++transform to turtle++++++++++++++++++++++++++++" + echo $(ls ../${OUTPUT_PATH_OWL}*.rdf) + make convert-rdf-to-turtle ONTOLOGY_FOLDER_PATH=../$OUTPUT_PATH_OWL + echo $(ls ../${OUTPUT_PATH_SHACL}*.rdf) + make convert-rdf-to-turtle ONTOLOGY_FOLDER_PATH=../$OUTPUT_PATH_SHACL + echo "-------------------end transform---------------------------------" + + sed -i "s/..\/implementation\/${implementation}\/model2owl-config/test\/ePO-default-config/g" config-proxy.xsl + cd .. + done + shell: bash + + - name: remove unnecessary files + run: | + sudo rm -rf model2owl + shell: bash + - name: commit files id: commit run: | @@ -101,7 +187,7 @@ jobs: if [ -z "$(git status --porcelain)" ]; then echo "::set-output name=push::false" else - git commit -m "Adding convention report and glossary files" + git commit -m "Adding transformation files" echo "::set-output name=push::true" fi shell: bash diff --git a/README.md b/README.md index a1a3fb9..e85212e 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ Main steps: * Fork this repository * Put your UML model/models export (XML file) in the implementation folder * Configure model2owl using config folder -* Change GitHub action scripts available to include your ontologies +* Change GitHub action script available to include your ontologies # Usage ## Naming conventions @@ -31,10 +31,10 @@ implementation * Copy model2owl-config folder into UML model implementation folder created at the previous step * Configure model2owl using the files inside model2owl-config folder ## Adjust GitHub actions -In the folder .GitHub from this repository are 2 action scripts that will transform the UML model/models. -### Generate convention report and glossary +In the folder .GitHub from this repository there is one action script that will transform the UML model/models. +### Transform with model2owl -**File name:** generate_conventions_and_glossary.yml +**File name:** transform_with_model2owl.yml Configure the trigger for this action changing the following lines ```yaml @@ -63,37 +63,7 @@ implementation To include both models for generating the convention report and glossary the variable should be AVAILABLE_IMPLEMENTATIONS=(modelOne modelTwo) ``` -### Transform UML model -**File name:** transform_ontology.yml - -Configure the trigger for this action changing the following lines -```yaml - paths: - - "implementation/demo_ontology/xmi_conceptual_model/demo_ontology_CM.xml" - - "implementation/demo_ontology/xmi_conceptual_model/demo_ontology_module_CM.xml" -``` -If any change is detected in the files that are included in the paths config will trigger this GitHub action. -The paths should be to the UML model export file. - -Configure which of the implementation should be included by changing the AVAILABLE_IMPLEMENTATIONS variable -inside the action script. -```shell -AVAILABLE_IMPLEMENTATIONS=(demo_ontology demo_ontology_module) -``` -Search in the script for this variable declaration as it has multiple usage and change the value accordingly. -The values in the list should be the folder names created for the UML model under the implementation folder. - -``` -Example: - - implementation - |___modelOne - |___modelTwo - -To include both models to transform into a formal OWL ontology and a SHACL shape the variable should be -AVAILABLE_IMPLEMENTATIONS=(modelOne modelTwo) -``` ## Output The output is automatically generated by the GitHub action scripts described previously. Each of the scripts will do an automatic commit on the branch that was executed from. To see the output executing a git pull after the GitHub @@ -112,9 +82,9 @@ be processed by GitHub action scripts .github glossary |__static -> folder to hold css and js neccesary for the glossary - |__modelOne_CM-glossary.html - |__modelTwo_CM-glossary.html - |__ontologies-combined-glossary.html -> combined glossary + |__modelOne_CM_glossary.html + |__modelTwo_CM_glossary.html + |__ontologies_combined_glossary.html -> combined glossary implementation model2owl-config ``` @@ -127,13 +97,13 @@ below. | |__static -> folder to hold css and js neccesary for the convention report | |__modelOne_CM-convention-report.html |__owl_ontology - | |__modelOne_CM-core.rdf - | |__modelOne_CM-core.ttl - | |__modelOne_CM-restrictions.rdf - | |__modelOne_CM-restrictions.ttl + | |__modelOne_CM_core.rdf + | |__modelOne_CM_core.ttl + | |__modelOne_CM_restrictions.rdf + | |__modelOne_CM_restrictions.ttl |__shacl_shapes - | |__modelOne_CM-shacl.rdf - | |__modelOne_CM-shacl.rdf + | |__modelOne_CM_shapes.rdf + | |__modelOne_CM_shapes.rdf |___model2owl-config |___xmi_conceptual_model |___modelTwo diff --git a/glossary/ontologies-combined_glossary.html b/glossary/ontologies-combined_glossary.html deleted file mode 100644 index f6fc022..0000000 --- a/glossary/ontologies-combined_glossary.html +++ /dev/null @@ -1,708 +0,0 @@ - - - - - - - - - - - - - - - - Model glossary - - -
-
-
-

Table of contents

-
-
-
-

Glossary

-

Class names and definitions

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Class nameDefinition
adms:IdentifierA structured reference that identifies an entity.
cccev:ReferenceFrameworkLegislation or official policy from which Requirements are derived.
clv:AdminUnitA detailed administrative unit organized in a hierarchy.
cpov:ImageObjectA logo to describe / represent the PublicOrganization.
cpov:PublicOrganisationAn Organization that is defined as being part of the public sector by a legal framework - at any level.
cpv:PersonA individual human being who may be dead or alive, but not imaginary.
cv:ContactPointInformation (e.g. e-mail address, telephone number) of a person or department through - which the user can get in touch with.
dct:JurisdictionThe limits or territory within which authority may be exercised.
dct:LocationAn identifiable geographic place or named place. -
foaf:AgentEntity that is able to carry out action.
foaf:DocumentA self-contained collection of information in a readable format.
foaf:Person
locn:AddressA spatial object that in a human-readable way identifies a fixed location.
locn:GeometryA shape or form of a Location.
org:ChangeEventAn event which resulted in a major change to an Organization such as a merger or complete - restructuring.
org:OrganizationA collection of people organized together into a community or other social, commercial - or political structure. The group has some common purpose or reason for existence - which goes beyond the set of people belonging to it and can act as an Agent. Organizations - are often decomposable into hierarchical structures.
org:OrganizationalUnitA subdivision of Organization which is part of this Organization.
rdfs:ResourceAnything that can be described.
skos:Concept
time:TemporalEntityA temporal interval or instant.
-

Attributes (datatype properties) names and definitions

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Class nameAttribute nameDefinitionData type / cardinality
adms:Identifieradms:schemeAgencyThe name of the agency responsible for issuing the Identifier.rdf:langString [0..*]
locn:Geometryclv:coordinatesA list of geographic coordinates that define the extent of the Geometry.xsd:string [0..*]
locn:Geometryclv:crsAn identifier for the coordinate reference system.xsd:anyURI [0..*]
locn:Geometryclv:latitudeThe geographic coordinate that specifies the north / south position of the Geomerty - on the Earth's surface.xsd:string [0..*]
locn:Geometryclv:longitudeThe geographic coordinate that specifies the east / west position of the Geometry - on the Earth's surface.xsd:string [0..*]
cpv:Personcpv:birthDateThe point in time on which the Person was born.cpv:GenericDate [0..*]
cpv:Personcpv:deathDateThe point in time on which the Person died.cpv:GenericDate [0..*]
cpv:Personcpv:matronymicNameName based on the given name of the Person's mother.rdf:langString [0..*]
cpv:Personcpv:patronymicNameName based on the given name of the Person's father.rdf:langString [0..*]
cv:ContactPointcv:contactPageA web page that could be used to reach out the Contact Point.rdf:langString [0..*]
cv:ContactPointcv:emailAn electronic address through which the Contact Point can be contacted.rdfs:Literal [0..*]
cv:ContactPointcv:telephoneA telephone number through which the Contact Point can be contacted.rdfs:Literal [0..*]
cpv:Persondct:alternativeAny name by which a Person is known, other than their full name.rdf:langString [0..*]
adms:Identifierdct:conformsTordf:langString [0..*]
cpov:PublicOrganisation
org:ChangeEvent
time:TemporalEntity
dct:descriptionThe textual description of the Public Organization. A textual explanation of the event. A textual representation of the Temporal Entity.rdf:langString [0..*]
rdf:langString [0..*]
rdf:langString [0..*]
cccev:ReferenceFramework
dct:Jurisdiction
dct:identifierAn unambiguous reference to a Reference Framework. A reference in the form of a Uniform Resource Identifier to the Jurisdiction.rdfs:Literal [0..*]
xsd:anyURI [0..*]
adms:Identifierdct:issuedThe date on which the Identifier was assigned.xsd:date [0..*]
foaf:Agentdct:titleThe noun given to the Agent.rdf:langString [0..*]
cpv:Personfoaf:familyNamerdf:langString [0..*]
cpv:Personfoaf:givenNameThe name(s) that identify the Person within a family with a common surname.rdf:langString [0..*]
cpv:Personfoaf:nameThe complete name of the Person as one string.rdf:langString [0..*]
locn:Geometrygeosparql:asGMLThe expression of the Geometry in Geography Markup Language.rdfs:Literal [0..*]
locn:Geometrygeosparql:asWKTAn expression of the Geometry in WKT, the Well-Known Text markup language.rdfs:Literal [0..*]
locn:Addresslocn:addressAreaThe name of a geographic area that groups Addresses.rdf:langString [0..*]
locn:Addresslocn:addressIDA globally unique identifier for each instance of an Address.rdfs:Literal [0..*]
locn:Addresslocn:adminUnitL1The name of the uppermost level of the address, almost always a country.rdf:langString [0..*]
locn:Addresslocn:adminUnitL2The name of a secondary level/region of the address, usually a county, state or other - such area that typically encompasses several localities.rdf:langString [0..*]
locn:Addresslocn:fullAddressThe complete address written as a string.rdf:langString [0..*]
dct:Locationlocn:geographicNameA textual description for a Location. rdf:langString [0..*]
locn:Addresslocn:locatorDesignatorA number or sequence of characters that uniquely identifies the locator within the - relevant scope.rdfs:Literal [0..*]
locn:Addresslocn:locatorNameProper noun(s) applied to the real world entity identified by the locator.rdf:langString [0..*]
locn:Addresslocn:poBoxA location designator for a postal delivery point at a post office, usually a number.rdfs:Literal [0..*]
locn:Addresslocn:postCodeThe code created and maintained for postal purposes to identify a subdivision of addresses - and postal delivery points.rdfs:Literal [0..*]
locn:Addresslocn:postNameA name created and maintained for postal purposes to identify a subdivision of addresses - and postal delivery points.rdf:langString [0..*]
locn:Addresslocn:thoroughfareThe name of a passage or way through from one location to another. rdf:langString [0..*]
cpv:Personperson:birthNameFull name of the Person given upon their birth.rdf:langString [0..*]
org:ChangeEventprov:endedAtTimeThe time instant when the state of the organisation update was terminatedxsd:dateTime [1..1]
org:ChangeEventprov:startedAtTimeThe time instant when the state of the organisation update was initiated.xsd:dateTime [0..*]
adms:Identifier
dct:Jurisdiction
rdfs:label A string of characters that represents a Jurisdiction.rdf:langString [0..*]
rdf:langString [0..*]
dct:Locationrdfs:seeAlsoA reference in the form of a Uniform Resource Identifier to the Location.xsd:anyURI [0..*]
cpov:PublicOrganisationskos:altLabelAn alternative or informal name(s) of a Public Organization, irrespective of language.rdf:langString [0..*]
adms:Identifierskos:notationA string of characters to uniquely identify a concept.rdfs:Literal [0..*]
cpov:PublicOrganisationskos:prefLabelA preferred label is used to provide the primary, legally recognised name of the Public - Organization, as defined in the ORG Ontology.rdf:langString [0..*]
-

Predicates (object properties) and definitions

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Predicate nameDefinitionDomain, Range and Cardinality
adms:identifier cpov:PublicOrganisation -> adms:Identifier [0..*]
cpov:PublicOrganisation -> adms:Identifier [0..*]
clv:adminUnitThe adminUnit relationship links an Address with the Administrative Unit class.locn:Address -> clv:AdminUnit [0..*]
clv:codeThe classification of the administrative unit.clv:AdminUnit -> clv:code [0..*]
clv:geometryTypeThe classification of the Geometry.locn:Geometry -> clv:geometryType [0..*]
clv:levelThe level of the administrative unit in the hierarchy.clv:AdminUnit -> clv:level [0..*]
clv:registeredAddressrdfs:Resource -> locn:Address [0..*]
cpov:frequencyThe recurrence of an instant or period. - time:TemporalEntity -> cpov:frequency [0..*]
cpov:hasFormalFrameworkA Change Event linked to relevant legislation or policy documents.A piece of legislation - or a policy document that prompted the change.org:ChangeEvent -> cccev:ReferenceFramework [0..*]
cpov:logocpov:PublicOrganisation -> cpov:ImageObject [0..*]
cpov:openingHoursThe time at which the Contact Point is normally available. The time at which the Contact Point is normally available.cv:ContactPoint -> time:TemporalEntity [0..*]
cv:ContactPoint -> time:TemporalEntity [0..*]
cpov:specialOpeningHoursSpecificationThe time during which the Contact Point is not available. The time during which the Contact Point is not available.cv:ContactPoint -> time:TemporalEntity [0..*]
cv:ContactPoint -> time:TemporalEntity [0..*]
cpsv:implementsA Change Event linked to relevant legislation or policy documents.A piece of legislation - or a policy document that prompted the change.org:ChangeEvent [,0..*] <- cccev:ReferenceFramework
cpv:contactPointThe main contact information of the resource. The main contact information of the resource. The main contact information of the resource.cpov:PublicOrganisation -> cv:ContactPoint [0..*]
cpv:Person -> cv:ContactPoint [0..*]
cpov:PublicOrganisation -> cv:ContactPoint [0..*]
cpv:domicileThe place that the Person treats as permanent home. The place that the Person treats as permanent home.cpv:Person -> locn:Address [0..*]
cpv:Person -> locn:Address [0..*]
cpv:genderThe identities, expressions and societal roles of the Person.cpv:Person -> cpv:gender [0..*]
cpv:identifiesThe entity that is referenced by the Identifier.adms:Identifier -> cpv:Person [0..*]
cpv:sexThe organism's biological sex.cpv:Person -> cpv:sex [0..*]
dct:creatorThe reference in the form of a Uniform Resource Identifier to the issuing authority.adms:Identifier -> foaf:Agent [0..*]
dct:identifierThe unambiguous structured reference to the Person.cpv:Person -> adms:Identifier [0..*]
dct:spatialThis property links an Organization to the Administrative Region(s) that it covers.cpov:PublicOrganisation -> at-voc:atu-type [0..*]
dct:type A classification assigned to an Agent.foaf:Agent -> skos:Concept []
foaf:Agent -> cpv:type [0..*]
foaf:homepageThe official home page of the Public Organization.cpov:PublicOrganisation -> foaf:Document [0..*]
locn:addressThe Address of a Public Organization. Associates any Resource with the corresponding Address. The Address of a Public Organization.cpov:PublicOrganisation -> locn:Address [0..*]
rdfs:Resource -> locn:Address [0..*]
cpov:PublicOrganisation -> locn:Address [0..*]
locn:geometryAssociates any Resource with the corresponding Geometry.rdfs:Resource -> locn:Geometry [0..*]
locn:locationAssociates any Resource with the corresponding Location.rdfs:Resource -> dct:Location [0..*]
org:changedByThe Organization that existed before the change.The Change Event that changed the - Organization.cpov:PublicOrganisation -> org:ChangeEvent [0..*]
org:classificationThe categorisation of the Public Organization.cpov:PublicOrganisation -> org:classification [0..*]
org:hasMemberAn Organization of which the Public Organisation is a member without being a sub organization, - they are independent entities.An Organization which is a member of another without - being a sub organization, they are independent entities.cpov:PublicOrganisation -> cpov:PublicOrganisation [0..*]
org:hasSubOrganizationRepresents hierarchical containment of Organizations or OrganizationalUnits; indicates - an organization which is a sub-part or child of this organization.Represents hierarchical - containment of Organizations or OrganizationalUnits; indicates an Organization which - contains this Organization.org:Organization [,0..*] <- org:Organization
org:hasUnitThe Public Organisation of which the Organizational Unit is an operational department.An - operational department within the Public Organization.cpov:PublicOrganisation -> org:OrganizationalUnit [0..*]
org:memberOfAn Organization of which the Public Organisation is a member without being a sub organization, - they are independent entities.An Organization which is a member of another without - being a sub organization, they are independent entities.cpov:PublicOrganisation [,0..*] <- cpov:PublicOrganisation
org:originalOrganizationThe Organization that existed before the change.The Change Event that changed the - Organization.cpov:PublicOrganisation [,0..*] <- org:ChangeEvent
org:purposeThis property describes the reasons of existence of an Organization.cpov:PublicOrganisation -> org:purpose [0..*]
org:resultedFromThis property links a Change Event or a Foundation Event to the Organization that - resulted from it.A Change Event from which the Public Organisation resulted.cpov:PublicOrganisation -> org:ChangeEvent [0..*]
org:resultingOrganizationThis property links a Change Event or a Foundation Event to the Organization that - resulted from it.A Change Event from which the Public Organisation resulted.cpov:PublicOrganisation [,0..*] <- org:ChangeEvent
org:subOrganizationOfRepresents hierarchical containment of Organizations or OrganizationalUnits; indicates - an organization which is a sub-part or child of this organization.Represents hierarchical - containment of Organizations or OrganizationalUnits; indicates an Organization which - contains this Organization.org:Organization -> org:Organization [0..*]
org:unitOfThe Public Organisation of which the Organizational Unit is an operational department.An - operational department within the Public Organization.cpov:PublicOrganisation [,0..*] <- org:OrganizationalUnit
person:citizenshipThe Jurisdiction that has conferred citizenship rights on the Person such as the right - to vote, to receive certain protection from the community or the issuance of a passport.cpv:Person -> dct:Jurisdiction [0..*]
person:countryOfBirthThe country in which the Person was born. The country in which the Person was born.cpv:Person -> dct:Location [0..*]
cpv:Person -> dct:Location [0..*]
person:countryOfDeathThe country in which the Person died. The country in which the Person died.cpv:Person -> dct:Location [0..*]
cpv:Person -> dct:Location [0..*]
person:placeOfBirthThe Location where the Person was born. The Location where the Person was born.cpv:Person -> dct:Location [0..*]
cpv:Person -> dct:Location [0..*]
person:placeOfDeathThe Location where the Person died. The Location where the Person died.cpv:Person -> dct:Location [0..*]
cpv:Person -> dct:Location [0..*]
person:residencyJurisdiction where the Person has their dwelling.cpv:Person -> dct:Jurisdiction [0..*]
xhtml:nextIn some cases, it is necessary to be able to create an ordered sequence of an organization - that precede and succeed each other. To support this, the CPOV includes the well-known - relationships of previous and next to allow such sequences to be captured and computed.In - some cases, it is necessary to be able to create an ordered sequence of organizations - that precede and succeed each other. To support this, the CPOV includes the well-known - relationships of previous and next to allow such sequences to be captured and computed.cpov:PublicOrganisation -> cpov:PublicOrganisation [0..*]
xhtml:prevIn some cases, it is necessary to be able to create an ordered sequence of an organization - that precede and succeed each other. To support this, the CPOV includes the well-known - relationships of previous and next to allow such sequences to be captured and computed.In - some cases, it is necessary to be able to create an ordered sequence of organizations - that precede and succeed each other. To support this, the CPOV includes the well-known - relationships of previous and next to allow such sequences to be captured and computed.cpov:PublicOrganisation [,0..*] <- cpov:PublicOrganisation
-
-
- - \ No newline at end of file diff --git a/implementation/core_public_organisation/xmi_conceptual_model/core_public_organisation_CM.xml b/implementation/core_public_organisation/xmi_conceptual_model/core_public_organisation_CM.xml index dd9cf81..ab6e022 100644 --- a/implementation/core_public_organisation/xmi_conceptual_model/core_public_organisation_CM.xml +++ b/implementation/core_public_organisation/xmi_conceptual_model/core_public_organisation_CM.xml @@ -1,6 +1,6 @@ - + diff --git a/implementation/demo_ontology/conventions_report/demo_ontology_CM-convention-report.html b/implementation/demo_ontology/conventions_report/demo_ontology_CM_convention_report.html similarity index 96% rename from implementation/demo_ontology/conventions_report/demo_ontology_CM-convention-report.html rename to implementation/demo_ontology/conventions_report/demo_ontology_CM_convention_report.html index 63480d7..afd6f92 100644 --- a/implementation/demo_ontology/conventions_report/demo_ontology_CM-convention-report.html +++ b/implementation/demo_ontology/conventions_report/demo_ontology_CM_convention_report.html @@ -19,7 +19,7 @@

UML Conventions Comformance Report

-

[ 11/07/2023 ]

+

[ 09/11/2023 ]

Publications Office of the European Union
@@ -51,11 +51,12 @@

Abstract

The organisation of this document is based on major types of UML elements and connectors that are employed in the eProcurement conceptual model. They are as follows: - Classes, Enumerations, Datatypes, Packages, Associations, Dependencies and + Classes, Enumerations, Datatypes, Packages, Objects, Associations, Dependencies, Realisations + and Generalisations. Each major section lists model items that need correction of errors or consideration of warnings.

The UML model in file demo_ontology_CM.xml - was tested at 07:15 on July 11, 2023.

+ was tested at 14:54 on November 9, 2023.

Nomenclature

Class names

@@ -2565,9 +2566,6 @@

epo:AccessTerm ->
The connector is missing a description. It is recommended to define and describe all the relations.
-
The connector epo:AccessTerm -> epo:ProcurementDocument (+epo:involvesProcurementDocument) - has target multiplicity invalidly stated. Multiplicity must be specified in the form - [min..max].

epo:AgentInRole -> foaf:Agent (+epo:playedBy)

@@ -2576,8 +2574,6 @@

epo:AgentInRole ->
The connector is missing a description. It is recommended to define and describe all the relations.
-
The connector epo:AgentInRole -> foaf:Agent (+epo:playedBy) has target multiplicity - invalidly stated. Multiplicity must be specified in the form [min..max].

epo:AgentInRole -> cv:Channel (+epo:exposesChannel)

@@ -2684,9 +2680,6 @@

epo:ContractLotCompl
The connector is missing a description. It is recommended to define and describe all the relations.
-
The connector epo:ContractLotCompletionInformation -> epo:Lot (+epo:describesLotCompletion) - has target multiplicity invalidly stated. Multiplicity must be specified in the form - [min..max].

epo:ContractLotCompletionInformation -> epo:Contract (+epo:refersToContract)

@@ -2695,9 +2688,6 @@

epo:ContractLotCompl
The connector is missing a description. It is recommended to define and describe all the relations.
-
The connector epo:ContractLotCompletionInformation -> epo:Contract (+epo:refersToContract) - has target multiplicity invalidly stated. Multiplicity must be specified in the form - [min..max].

epo:ContractModification -> epo:Notice (+epo:refersToOriginalNotice)

@@ -2754,9 +2744,6 @@

epo:DynamicPurchaseS
The connector is missing a description. It is recommended to define and describe all the relations.
-
The connector epo:DynamicPurchaseSystemTechnique -> epo:DynamicPurchasingSystem (+epo:resultsInDynamicPurchasingSystem) - has target multiplicity invalidly stated. Multiplicity must be specified in the form - [min..max].

epo:DynamicPurchasingSystem -> epo:SelectedCandidateList (+epo:hasCandidateList)

@@ -2814,14 +2801,6 @@

epo:Lot -> epo:Lo
The connector is missing a description. It is recommended to define and describe all the relations.

-

epo:LotAwardDecision -> epo:Lot (+epo:concernsLot)

-
-
- Unmet association conventions -
-
The connector epo:LotAwardDecision -> epo:Lot (+epo:concernsLot) has target multiplicity - invalidly stated. Multiplicity must be specified in the form [min..max].
-

epo:LotAwardDecision -> epo:MonetaryValue (+epo:hasFrameworkAgreementMaximumValue)

@@ -2861,9 +2840,6 @@

epo:LotGroupAwardInf

The connector is missing a description. It is recommended to define and describe all the relations.
-
The connector epo:LotGroupAwardInformation -> epo:LotGroup (+epo:describesLotGroup) - has target multiplicity invalidly stated. Multiplicity must be specified in the form - [min..max].

epo:MiniCompetition -> epo:SelectedCandidateList (+epo:usesCandidateList)

@@ -2920,8 +2896,6 @@

epo:Notice -> epo
The connector is missing a description. It is recommended to define and describe all the relations.
-
The connector epo:Notice -> epo:Procedure (+epo:refersToProcedure) has target multiplicity - invalidly stated. Multiplicity must be specified in the form [min..max].

epo:Notice -> epo:Notice (+epo:refersToNotice)

@@ -2954,8 +2928,6 @@

epo:NoticeDescriptio
The connector is missing a description. It is recommended to define and describe all the relations.
-
The connector epo:NoticeDescription -> epo:Notice (+epo:describesNotice) has target - multiplicity invalidly stated. Multiplicity must be specified in the form [min..max].

epo:NoticeDescription -> epo:ElementDescription (+epo:hasElementDescription)

@@ -3077,14 +3049,6 @@

epo:ProcurementEleme
The connector is missing a description. It is recommended to define and describe all the relations.

-

epo:ProcurementElement -> adms:Identifier (+adms:identifier)

-
-
- Unmet association conventions -
-
The connector epo:ProcurementElement -> adms:Identifier (+adms:identifier) has target - multiplicity invalidly stated. Multiplicity must be specified in the form [min..max].
-

epo:ProcurementObject -> epo:Term (+epo:isSubjectToTerm)

@@ -3140,18 +3104,6 @@

epo:ReviewDecision -

The connector is missing a description. It is recommended to define and describe all the relations.
-
The connector epo:ReviewDecision -> epo:ReviewRequest (+epo:resolvesReviewRequest) - has target multiplicity invalidly stated. Multiplicity must be specified in the form - [min..max].
-
-

epo:ReviewRequestSummary -> epo:Lot (+epo:concernsReviewSummaryForLot)

-
-
- Unmet association conventions -
-
The connector epo:ReviewRequestSummary -> epo:Lot (+epo:concernsReviewSummaryForLot) - has target multiplicity invalidly stated. Multiplicity must be specified in the form - [min..max].

epo:SelectedCandidateList -> epo:Candidate (+epo:containsCandidate)

@@ -3169,15 +3121,6 @@

epo:SelectedCandidat
The connector is missing a description. It is recommended to define and describe all the relations.

-

epo:SubmissionStatisticalInformation -> epo:AwardDecision (+epo:summarisesInformationForAwardDecision)

-
-
- Unmet association conventions -
-
The connector epo:SubmissionStatisticalInformation -> epo:AwardDecision (+epo:summarisesInformationForAwardDecision) - has target multiplicity invalidly stated. Multiplicity must be specified in the form - [min..max].
-

epo:System <-> foaf:Agent (+epo:isOwnedByAgent +epo:ownsSystem)

@@ -3193,8 +3136,6 @@

epo:Tender -> epo

The connector is missing a description. It is recommended to define and describe all the relations.
-
The connector epo:Tender -> epo:Lot (+epo:isSubmittedForLot) has target multiplicity - invalidly stated. Multiplicity must be specified in the form [min..max].

epo:Tender -> epo:LotGroup (+epo:isSubjectToGrouping)

@@ -3235,8 +3176,6 @@

epo:TenderAwardOutco
The connector is missing a description. It is recommended to define and describe all the relations.
-
The connector epo:TenderAwardOutcome -> epo:Tender (+epo:concernsTender) has target - multiplicity invalidly stated. Multiplicity must be specified in the form [min..max].

epo:Tenderer -> epo:ExclusionGround (+epo:substantiatesExclusionGround)

@@ -3253,8 +3192,6 @@

epo:TenderGroup ->
The connector is missing a description. It is recommended to define and describe all the relations.
-
The connector epo:TenderGroup -> epo:LotGroup (+epo:isSubmittedForLotGroup) has target - multiplicity invalidly stated. Multiplicity must be specified in the form [min..max].

epo:TenderGroup -> epo:MonetaryValue (+epo:hasTotalValue)

@@ -3263,8 +3200,6 @@

epo:TenderGroup ->
The connector is missing a description. It is recommended to define and describe all the relations.
-
The connector epo:TenderGroup -> epo:MonetaryValue (+epo:hasTotalValue) has target - multiplicity invalidly stated. Multiplicity must be specified in the form [min..max].

org:Organization -> adms:Identifier (+epo:hasLegalIdentifier)

@@ -3326,34 +3261,6 @@

epo:ContractTerm -&g should not be reused as the name of elements (Class, Datatype, Enumeration, Object) or attributes.

-

epo:ElementChangeDescription -> at-voc:change-corrig-justification (+epo:hasChangeJustification)

-
-
Unmet dependency conventions
-
The connector epo:ElementChangeDescription -> at-voc:change-corrig-justification (+epo:hasChangeJustification) - has target multiplicity invalidly stated. Multiplicity must be specified in the form - [min..max].
-
-

epo:ElementConfidentialityDescription -> at-voc:non-publication-justification (+epo:hasNonPublicationJustification)

-
-
Unmet dependency conventions
-
The connector epo:ElementConfidentialityDescription -> at-voc:non-publication-justification - (+epo:hasNonPublicationJustification) has target multiplicity invalidly stated. Multiplicity - must be specified in the form [min..max].
-
-

epo:ElementModificationDescription -> at-voc:modification-justification (+epo:hasModificationJustification)

-
-
Unmet dependency conventions
-
The connector epo:ElementModificationDescription -> at-voc:modification-justification - (+epo:hasModificationJustification) has target multiplicity invalidly stated. Multiplicity - must be specified in the form [min..max].
-
-

epo:FrameworkAgreementTerm -> at-voc:framework-agreement (+epo:hasFrameworkAgreementType)

-
-
Unmet dependency conventions
-
The connector epo:FrameworkAgreementTerm -> at-voc:framework-agreement (+epo:hasFrameworkAgreementType) - has target multiplicity invalidly stated. Multiplicity must be specified in the form - [min..max].
-

epo:Fund -> at-voc:EU-programme (+epo:hasFundProgramme)

Unmet dependency conventions
@@ -3365,8 +3272,6 @@

epo:Notice -> at-
Unmet dependency conventions
The connector is missing a description. It is recommended to define and describe all the relations.
-
The connector epo:Notice -> at-voc:notice-type (+epo:hasNoticeType) has target multiplicity - invalidly stated. Multiplicity must be specified in the form [min..max].

epo:Notice -> at-voc:legal-basis (+epo:conformsToSpecificLegalBasis)

@@ -3374,13 +3279,6 @@

epo:Notice -> at-
The connector is missing a description. It is recommended to define and describe all the relations.

-

epo:Procedure -> at-voc:procurement-procedure-type (+epo:hasProcedureType)

-
-
Unmet dependency conventions
-
The connector epo:Procedure -> at-voc:procurement-procedure-type (+epo:hasProcedureType) - has target multiplicity invalidly stated. Multiplicity must be specified in the form - [min..max].
-

epo:ProcurementObject -> epo:legal-regime (+epo:hasLegalRegime)

Unmet dependency conventions
@@ -3404,8 +3302,6 @@

epo:Quantity -> a
Unmet dependency conventions
The connector is missing a description. It is recommended to define and describe all the relations.
-
The connector epo:Quantity -> at-voc:measurement-unit (+epo:hasUnitCode) has target - multiplicity invalidly stated. Multiplicity must be specified in the form [min..max].

epo:Reviewer -> at-voc:review-body-type (+epo:hasReviewBodyType)

@@ -3413,20 +3309,11 @@

epo:Reviewer -> a
The connector is missing a description. It is recommended to define and describe all the relations.

-

epo:ReviewIrregularitySummary -> at-voc:irregularity-type (+epo:hasIrregularityType)

-
-
Unmet dependency conventions
-
The connector epo:ReviewIrregularitySummary -> at-voc:irregularity-type (+epo:hasIrregularityType) - has target multiplicity invalidly stated. Multiplicity must be specified in the form - [min..max].
-

epo:SpecificDuration -> time:TemporalUnit (+time:unitType)

Unmet dependency conventions
The connector is missing a description. It is recommended to define and describe all the relations.
-
The connector epo:SpecificDuration -> time:TemporalUnit (+time:unitType) has target - multiplicity invalidly stated. Multiplicity must be specified in the form [min..max].

epo:SubmissionStatisticalInformation -> at-voc:received-submission-type (+epo:hasReceivedSubmissionType)

@@ -4070,7 +3957,7 @@

the eProcurement Ontology initiative.

The template of this report is based on the PubCSS library.

-

© Publications Office of the European Union, 2020

+

© Publications Office of the European Union, 2023