Skip to content

Conversation

@dr-shorthair
Copy link
Collaborator

@dr-shorthair dr-shorthair linked an issue Jan 15, 2026 that may be closed by this pull request
@dr-shorthair
Copy link
Collaborator Author

@kjano @KathiSchleidt @sgrellet @afeliachi Can you check that this accomplishes what we discussed.

Copy link
Contributor

@sgrellet sgrellet left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for this. Two questions from my end

  • if we have hasDeployment - deployedAsset. Why keeping inDeployment/deployedOnPlatform ? and systemDeployment/deployedSystem ? for backward compatibility ?
  • same with hosts/isHostedBy => a recursive association (hosts/isHostedBy) on Assest with help removing the other two

Copy link
Contributor

@maximelefrancois86 maximelefrancois86 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good proposal, just a few minor change requests

Comment on lines 1983 to 1984
Asset MUST be considered to be abstract, so any individual Asset SHOULD be declared to be an
instance of a concrete sub-class, and not of the Asset class.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

UML world... Abstract classes don't exist in RDF and OWL. I suggest removing this

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We already had this form of words for Execution and System.
Yes, this is 'UML-ish' but here it is just normative text.
I don't know how to write an axiom that rdf:type sosa:Asset must not appear.
(It can probably be done in SHACL, of course)

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK.
There are two provisions here: (one uses MUST, one uses SHOULD).
The second one can be checked/enforced with ex. SHACL, but the first one cannot (how something is considered is in the head of the user, not in the implementation). So I would suggest to use a different formulation like:

Asset are considered abstract. Entities SHOULD NOT be explicitly typed as
an Asset, unless they are typed with one of the (concrete) sub-classes of Asset.

Maybe this can be part of a separate issue.

Copy link
Collaborator Author

@dr-shorthair dr-shorthair Jan 31, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've changed it to

The Asset class is considered to be abstract. An individual SHOULD NOT be typed as an Asset, but MAY be typed with one of the (concrete) sub-classes of Asset.

Yes, this still has two normative provisions, but in my opinion they belong together.

Also changed Execution and System to match.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(or should it be MUST NOT rather than SHOULD NOT)

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I prefer SHOULD NOT.

Many OWL APIs have the option to explicit inferred triples. Saying MUST NOT would imply that we forbid users to use these tools

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Right. The provision applies to assertions, not to inferences. Let's try to make that clear.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe just

The Asset class is considered to be abstract. Individual assets SHOULD be typed with one of the (concrete) sub-classes of Asset

@sgrellet
Copy link
Contributor

  • same with hosts/isHostedBy => a recursive association (hosts/isHostedBy) on Assest with help removing the other two

some after thoughts, with such a high level recursive association, if we still want to keep the hasSubSystem, isSubSystemOf we could make those sub properties of the high level proposed ones

Comment on lines 1983 to 1984
Asset MUST be considered to be abstract, so any individual Asset SHOULD be declared to be an
instance of a concrete sub-class, and not of the Asset class.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK.
There are two provisions here: (one uses MUST, one uses SHOULD).
The second one can be checked/enforced with ex. SHACL, but the first one cannot (how something is considered is in the head of the user, not in the implementation). So I would suggest to use a different formulation like:

Asset are considered abstract. Entities SHOULD NOT be explicitly typed as
an Asset, unless they are typed with one of the (concrete) sub-classes of Asset.

Maybe this can be part of a separate issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add Asset class

4 participants