System modeller requires a domain model bundle containing a set of asset icons, a mapping specifying which icon to use per assertible asset, and a domain model RDF graph in NQ format.
The NQ file contains the RDF encoded as a set of quads: three elements for each the RDF triple, and a graph URI. The graph URI is also the value of the domain model core:domainGraph property. It is used by system modeller as the index for the domain model graph when saved to the triple store, and is referred to from system models based on the domain model.
In system modeller whenever domain models are listed for display or selection purposes, the domain model is referred to by the value of its rdfs:label property. This is supposed to be a short, human readable reference to the modelled domain, although in the past system modeller depended on this being a sub-string of the domain model domainGraph value, converted to upper case.
The problem is that in csv2nq, the core:domainGraph property is set by a command line option, but the rdfs:label property is taken from the DomainModel.csv source file. This makes no sense, because it means if you want to create a new domain model with a different domainGraph for deployment on the same system modeller instance as the old version, bundle , you can't just specify a different csv2nq command line option.
Example: I am working on a new version of the domain model with core:domainGraph = domain:domain-network, and rdfs:label = "NETWORK". I make some changes to the CSV source files, and I want to test the result. To do this I need to generate a deployable version using csv2nq. I don't want to overwrite the old version, so I want the new version to have core:domainGraph = domain:domain-network-unstable, and rdfs:label = "NW-UNSTABLE".
This can be done by running csv2nq with the option '-m domain-network-upstable', but you must also change the label field in DomainModel.csv. Doing the former without the latter leads to two domain models with the same rdfs:label, making it impossible to specify which one should be used if both domain models are deployed to the same system modeller instance.
Conclusion: we need an extra command line option something like '-l' where one can specify the string to use as rdfs:label, overriding whatever is in the DomainModel.csv file.
System modeller requires a domain model bundle containing a set of asset icons, a mapping specifying which icon to use per assertible asset, and a domain model RDF graph in NQ format.
The NQ file contains the RDF encoded as a set of quads: three elements for each the RDF triple, and a graph URI. The graph URI is also the value of the domain model core:domainGraph property. It is used by system modeller as the index for the domain model graph when saved to the triple store, and is referred to from system models based on the domain model.
There are many problems with the core:domainGraph URI, see for example https://github.com/Spyderisk/system-modeller/issues/69 and https://github.com/Spyderisk/system-modeller/issues/200. However, this is not the problem raised here.
In system modeller whenever domain models are listed for display or selection purposes, the domain model is referred to by the value of its rdfs:label property. This is supposed to be a short, human readable reference to the modelled domain, although in the past system modeller depended on this being a sub-string of the domain model domainGraph value, converted to upper case.
The problem is that in csv2nq, the core:domainGraph property is set by a command line option, but the rdfs:label property is taken from the DomainModel.csv source file. This makes no sense, because it means if you want to create a new domain model with a different domainGraph for deployment on the same system modeller instance as the old version, bundle , you can't just specify a different csv2nq command line option.
Example: I am working on a new version of the domain model with core:domainGraph = domain:domain-network, and rdfs:label = "NETWORK". I make some changes to the CSV source files, and I want to test the result. To do this I need to generate a deployable version using csv2nq. I don't want to overwrite the old version, so I want the new version to have core:domainGraph = domain:domain-network-unstable, and rdfs:label = "NW-UNSTABLE".
This can be done by running csv2nq with the option '-m domain-network-upstable', but you must also change the label field in DomainModel.csv. Doing the former without the latter leads to two domain models with the same rdfs:label, making it impossible to specify which one should be used if both domain models are deployed to the same system modeller instance.
Conclusion: we need an extra command line option something like '-l' where one can specify the string to use as rdfs:label, overriding whatever is in the DomainModel.csv file.