Samenvatting van het document.
Status van dit document.
Het IMGolf model betreft een voorbeeldmodel waarmee uitgelegd wordt hoe NEN3610 in elkaar zit. Het oorspronkelijke voorbeeld model was een UML model. Voor de Linked Data toets is dit voorbeeld uitgewerkt in drie stijlen:
De Koninklijkse Haagse Country & Golfclub golfbaan is vervolgens als voorbeeld data opgepakt. Deze voorbeeld data is in vier formaten beschikbaar:
Door deze opzet, kunnen we een goed beeld krijgen wat de verschillen op data-niveau zijn als je deze verschillende stijlen toepast.
Het vergelijken van deze stijlen is pas goed mogelijk als je de verschillende modellen van de data naast elkaar kunt houden. Dat is lastig, omdat deze vanzelfsprekend van elkaar verschillen: ze kennen een eigen metamodel (respectievelijk dat van UML, COINS, GWSW-OROX en W3c)
Wel is het mogelijk vanuit de data, in het geval van de Linked Data situatie, voor elk van de stijlen een model te genereren. Hierdoor zijn de verschillen goed zichtbaar
Ook geldt dat de drie metamodellen van COINS, GWSW en OROX gegenereerd kunnen worden uit de drie IMGolf modellen. Zo kunnen we ook op metaniveau een vergelijking doen.
Deze aanpak is hieronder uitgewerkt
Deze sectie beschrijft de vier IMGolf modellen
Hieronder is het originele UML IMGolf model afgebeeld
Hieronder is het IMGolf model afgebeeld conform W3c RDF/OWL/SHACL
Hieronder is het IMGolf model afgebeeld conform W3c COINS
Hieronder is het IMGolf model afgebeeld conform W3c GWSW-OROX
Op basis van de concrete data van 1 golfbaan kan een model gegenereerd worden, zodat het makkelijker wordt om de verschillende stijlen met elkaar te vergelijken
Bij de generatie wordt het originele databestand opgepakt, en vervolgens wordt een model gegenereerd door de volgende stappen uit te voeren:
owl:Class
) worden aangemaakt voor elk unieke object op de positie ?subject rdf:type ?object
?subject ?predicate ?object
owl:ObjectProperty
wordt aangemaakt indien het ?object een resource is (IRI en/of Blank node)owl:DatatypeProperty
wordt aangemaakt indien het ?object een literal isrdfs:label
element wordt toegevoegd indien deze nog niet aanwezig was (afgeleid uit de URI van een klasse of eigenschap: het deel na de '#' of na de laatste '/')sh:NodeShape
) wordt aangemaakt voor elke gevonden klassesh:PropertyShape
) wordt aangemaakt voor elke gevonden datatype-eigenschap per klasse
sh:PropertyShape
) wordt aangemaakt voor elke gevonden object-eigenschap per klasse
sh:PropertyShape
) wordt aangemaakt voor elke gevonden object-eigenschap per klasse
Bovenstaande zou nog verder uitgebreid kunnen worden. Te denken valt bijvoorbeeld aan:
Vanzelfsprekend kan alleen maar die dingen gegenereerd worden die ook in de brondata zitten. Uitleg of afwijkende namen zijn niet mogelijk, en ook kunnen cardinaliteiten of subklassificaties niet met zekerheid worden afgeleid.
Hoewel we voor de generatie uitgaan van het W3c RDF/OWL/SHACL metamodel, zul je zien dat het gegenereerde IMGolf model toch zal afwijken van het met de hand opgestelde IMGolf model. Het verschil geeft mooi aan wat je als modelleur nog toevoegd als uitleg.
Ook is het niet mogelijk om deze aanpak te gebruiken voor de UML/GML data, aangezien dit geen Linked Data is en dus niet generiek in te lezen is (hier zou dus eerst een basale vertaling van GML naar Linked Data gemaakt moeten worden.
Een dergelijke omzetting zou een mooi beginpunt kunnen zijn van een generieke aanpak
Onderstaand diagram is de visualisatie van het RDF/OWL/SHACL model dat gegenereerd is conform bovenstaande aanpak op basis van het COINS voorbeeldbestand van de Koninklijke Haagse Golf & Country club
Onderstaand diagram is de visualisatie van het RDF/OWL/SHACL model dat gegenereerd is conform bovenstaande aanpak op basis van het GWSW-OROX voorbeeldbestand van de Koninklijke Haagse Golf & Country club
Onderstaand diagram is de visualisatie van het RDF/OWL/SHACL model dat gegenereerd is conform bovenstaande aanpak op basis van het W3c RDF/OWL voorbeeldbestand van de Koninklijke Haagse Golf & Country club