nl-digigo / visi

Beheeromgeving van de VISI open standaard.
https://nl-digigo.github.io/visi/
6 stars 4 forks source link

Expliciete verwijzing naar externe gegevensbronnen #61

Open michonmaas opened 6 years ago

michonmaas commented 6 years ago
  1. Omschrijving van de vraag/opmerking zelf (bij voorkeur in het format van ‘userstory’):

Als gebruiker van de VISI standaard wil ik de mogelijkheid om expliciet te verwijzen naar een gegeven buiten een VISI bericht, zodat ik de gegevens van verschillende standaarden en/of systemenen in relatie met elkaar kan ontsluiten.

Denk hierbij aan: een werkdocument in een DMS, een object vastgelegd in een andere standaard (CBNL, COINS, DATEXII, etc..) , type uit een Object Type Library (OTL), WIKI, onderdeel RAW systematiek of zelfs een ander VISI bericht.

  1. Include name, function and organisation of stakeholder Indiener: Boyke Djorai Functie: Functioneel beheerder VISI Organisatie: Rijkswaterstaat

  2. Include date and origin of request Datum van ingediend: 10 mei 2017 Bron: Rijkswaterstaat BIM programma

  3. Determine if it's a bug, enhancement or other request

Issue is enhancement

When issuing enhancements

  1. Describe problem
  2. Describe impact of problem (money / quality / time)
  3. Propose functional need / solution / expected behaviour
  4. Describe benefits of enhancement

Inleiding

Binnen Rijkswaterstaat wordt de VISI standaard steeds vaker ingezet om contractbeheersing te ondersteunen en assetmanagementgegevens uit te wisselen. Met enige regelmaat worden verkenningen gedaan naar nieuwe toepassingsgebieden en optimalisatie van de huidige toepassingsgebieden. Hierbij bestaat een sterke behoefte om op een expliciete wijze vanuit VISI berichten te kunnen verwijzen naar andere gegevensbronnen.

Rijkswaterstaat wil met behulp van deze notitie haar wens op dit gebied kenbaar maken aan de VISI beheerorganisatie. Om dit op een onderbouwde manier te doen is in deze notitie de problematiek onderbouwd met een tweetal voorbeelden en is de wens op een functionele wijze uitgeschreven.

Problematiek

Om de problematiek inzichtelijk te maken volgen hieronder een tweetal voorbeelden.

Voorbeeld 1: Urgente storingen in relatie tot areaalgegevens

Voor prestatiecontracten is besloten dat storingsgegevens in zijn totaliteit (urgent en niet urgent) periodiek in de levering van areaalgegevens mee worden genomen conform Rijkswaterstaat OTL en COINS systematiek. Deze gegevens worden binnen Rijkswaterstaat opgenomen in de BIM database. Dit is echter achteraf en hiermee worden niet de gestelde contracteisen rond de afhandeling van urgente storingen afgedekt, waarbij Rijkswaterstaat over actuele gegevens dient te beschikken ten aanzien van de storing. De proceseisen hieromtrent worden ondersteund met de inzet van de communicatiestandaard VISI.

Urgente Storingen worden op basis van de VISI standaard afgehandeld. Een melding (VISI bericht) van een urgente storing heeft betrekking op één of meerdere objecten uit het areaal. Om VISI berichten aan objecten uit het COINS informatiemodel te kunnen koppelen en objectgegevens over locatie, storingsgeschiedenis en ander eigenschappen uit de BIM database te kunnen ontsluiten, wordt in het VISI bericht een unieke identifier gebruikt, die herleidbaar is binnen het COINS informatiemodel. De gebruiker kan hierdoor direct inzicht krijgen in alle gegevens van het object waar de urgente storing betrekking op heeft.

Op dit moment is er geen mogelijkheid binnen de VISI Standaard om expliciet aan te geven dat een dergelijke verwijzing wordt verwacht in het VISI bericht en hoe dit gegevenselement geïnterpreteerd dient te worden door de ontvangende partij. Hierdoor kan bijvoorbeeld geen automatisme worden gerealiseerd om op eenvoudige wijze de gegevens uit een extern bron te ontsluiten.

Voorbeeld 2: Adviesvraag over een werkdocument

Voorafgaand aan een formele reactie via VISI naar een Opdrachtnemer, waarnaar uiteindelijk een definitief document wordt gestuurd, werkt een contractmanager eerst een notitie hiervoor uit. Hij doet dit in het DMS systeem van Rijkswaterstaat, waar ook het versiebeheer van het betreffende document plaatsvindt. In het project wordt het vier-ogen principe gehanteerd. De contractmanager wil de notitie hierom nog als werkdocument intern voorleggen aan een collega met de vraag zijn/haar aanvulling te doen en eventueel nog advies te krijgen over de opzet. De contractmanager gebruikt hiervoor een intern VISI bericht met daarin een link naar het werkdocument in het DMS, zodat de collega in de advies rol het werkdocument kan bewerken en de audittrail in het DMS behouden blijft.

Op dit moment is er geen mogelijkheid binnen de VISI Standaard om expliciet aan te geven dat een dergelijke hyperlink wordt verwacht in het VISI bericht. Hierdoor kan bijvoorbeeld de VISI software niet herkennen dat het hier om een hyperlink gaat, en kan vanuit het VISI bericht niet direct het werkdocument geopend worden. Handmatige acties zijn hierdoor noodzakelijk.

In beide voorbeelden komt de behoefte naar voren om te verwijzen naar externe gegevensbronnen buiten VISI. Binnen VISI kan echter niet kenbaar worden gemaakt dat een externe verwijzing wordt verwacht in een bericht en hoe deze verwijzing geïnterpreteerd dient te worden.

Wens

Op basis van de geschetste problematiek, is hieronder de wens geformuleerd.

De mogelijkheid om expliciet te verwijzen naar een gegeven buiten een VISI bericht. Denk hierbij aan: een werkdocument in een DMS, een object vastgelegd in een andere standaard (CBNL, COINS, DATEXII, etc..) , type uit een Object Type Library (OTL), WIKI, onderdeel RAW systematiek of zelfs een ander VISI bericht.

Onder expliciet wordt verstaan dat binnen de systematiek het formaat van het gegeven kan worden afgedwongen op een wijze dat deze door alle partijen eenduidig geïnterpreteerd kan worden. Een voorbeeld hierbij is dat als een bepaald basistype wordt gebruikt, het direct duidelijk is voor de persoon die het element vult (en de software die het element interpreteert) dat het om een URL verwijzing naar externe content gaat, die getoond dient te worden als hyperlink. Uiteraard is de wens om naast een URL meerdere smaken mogelijk te maken, denk hierbij aan een IRI of een URI.

Zie de onderstaande bijlage voor het officiële verzoek van Rijkswaterstaat.

TC1706-06 Wens expliciete verwijzing naar externe gegevensbronnen.pdf

OPLOSSING: De VISI Standaard ondersteunt een beperkt aantal primitive datatypes van XML: BOOL, BOOLEAN, DATE, DATETIME, DECIMAL, INT, INTEGER, REAL, STRING, TIME. Deze datatypes worden ingevuld bij eigenschap baseType van een UserDefiniedType.

XML kent meer primitive datatypes: https://www.w3.org/TR/xmlschema-2/#built-in-primitive-datatypes. Onder andere ANYURI: https://www.w3.org/TR/xmlschema-2/#anyURI

De VISI Standaard hoeft niet aangepast te worden, maar wel de beschrijving welke waarden ingevuld mogen worden in de eigenschap baseType: ANYURI, BOOL, BOOLEAN, DATE, DATETIME, DECIMAL, INT, INTEGER, REAL, STRING, TIME.

ENTITY UserDefinedType; description : STRING; ... baseType : STRING; xsdRestriction : OPTIONAL STRING; ... END_ENTITY;

De VISI Promotor moet wel aangepast worden, want de huidige versie van de promotor ondersteunt het promoten van baseType ANYURI van xml naar xsd niet, zie bestand promote.cpp: https://github.com/bimloket/visi/blob/master/promotor/dll/promote.cpp

De VISI promotor moet de volgende definitie in het raamwerk:

<SimpleElementType id="SOAPServerURL">
    <description>SOAP server URL</description>
    <userDefinedType>
        <UserDefinedTypeRef idref="UDT_ANYURI"/>
    </userDefinedType>
</SimpleElementType>
<UserDefinedType id="UDT_ANYURI">
    <description>anyURI</description>
    <baseType>ANYURI</baseType>
</UserDefinedType>

Vertalen tot in de XSD de volgende definitie : <xsd:element name="sOAPServerURL" type="xsd:anyURI"/>

Aan het VISI raamwerk om te testen is een SimpleElementType / UserDefiniedType toegevoegd met baseType ANYURI, https://github.com/bimloket/visi/blob/master/testproject/topkoks/_7.xml

Openstaande acties:

Blocker: - VISI Promotor aanpassen.