Tech team,
We had a great discussion of Element IDs at this week's meeting
<https://spdx.swinslow.net/p/spdx-minutes>, with William documenting
consensus on:fundamentals:
* Element ID is a unique URI/IRI
* Element ID is a namespace with local id
- Does not imply physical location
Next week we should attempt to resolve whether SPDX allows the absolute
(non-local) part of an IRI reference to be obtained from a) base namespace,
b) string prefixes, or c) both.
* Sean: concern about not having prefixing,
* Gary: Base namespace is already in RDF.
* Sean in UCO we removed base. Complexitites in real [world] use, ok
with using prefix.
The model <https://github.com/spdx/meetings/blob/master/tech/Model.png>
currently
defines the Document "namespace" attribute - this is the base namespace for
the document. RFC 3986 discusses establishing the base URI
<https://www.rfc-editor.org/rfc/rfc3986.html#section-5.1>, with the
highest-precedence source being "Base URI embedded in content". Since the
Document namespace is a required attribute it will always be used, and none
of the more complex methods will ever be needed.
An important distinction is between elements contained in this SPDX
document, references to elements contained in other SPDX documents, and
references to non-SPDX data (e.g., html pages, XML or JSON data, source or
binary files themselves). The base namespace applies to elements contained
in this document and is therefore (in my opinion) essential.
We currently reference both SPDX and non-SPDX data indirectly, through
ExternalMap and ExternalReference classes respectively. If many instances
of those classes had the same base URI (i.e., multiple elements from the
same SPDX document), defining a prefix for it would save some space. This
would required defining a new prefix-to-base-URI mapping type in Document.
Another use case would be to define prefixes for URIs beneath this
document's base URI:
namespace = http://example.com/sboms/product-x
prefixes = {
p: http://example.com/sboms/product-x/package
f: http://example.com/sboms/product-x/file
s: http://example.com/sboms/product-x/snippet
}
Then elements in this document could be referenced within this document
using their type prefixes: "f:1", "f:2", "f:time_exe", etc. This couldn't
be used for external SPDX references unless the type name hierarchy was
made mandatory for all SPDX documents.
Consensus questions for next week, and my opinions:
* Document retains its (base) namespace property? (strong yes)
- Property name: namespace, base_namespace, base_ns, base?
(don't care)
* Add a Prefix type and prefixes property to Document? (neutral,
somewhat complex, wouldn't object)
Maybe these will be quick and we can dig deeper into last week's list,
including hints.
Dave
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#4166): https://lists.spdx.org/g/Spdx-tech/message/4166
Mute This Topic: https://lists.spdx.org/mt/85188817/21656
Group Owner: [email protected]
Unsubscribe: https://lists.spdx.org/g/Spdx-tech/unsub [[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-