Closed bbartley closed 2 years ago
I believe this is implicitly the case already, since in the appendices we provide a subclass mapping for all of their classes to sbol:TopLevel
or sbol:Identified
. We should make it explicit at the top of the appendix.
Checking, I find that pySBOL3 already handles these objects in this manner:
>>> doc = sbol3.Document()
>>> doc.add(sbol3.Activity('http://foo.org/bar'))
>>> print(doc.write_string(sbol3.NTRIPLES))
<http://foo.org/bar> <http://sbols.org/v3#displayId> "bar" .
<http://foo.org/bar> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://sbols.org/v3#TopLevel> .
<http://foo.org/bar> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/ns/prov#Activity> .
<http://foo.org/bar> <http://sbols.org/v3#hasNamespace> <https://bbn.com/scratch/> .
@goksel , @udp: do your libraries do this also?
Currently these classes are not treated like other types of SBOL extension classes, i.e., they are only defined by their
prov:
orom:
type. Like other SBOL extensions, they should also derive through multiple inheritance fromsbol:TopLevel
orsbol:Identified
.