I was wondering if it is better/proper to reference the entities using a fragment identifier format - basically by inserting a hash before the name
[url] + # + [name]
=> http://example.com/page/#webPage
EDIT:
Following a kind answer from the ever-generous and great @Unor, I have added this edit to try confine the scope of my query and clarify the main issue I am getting at. I have also deleted most of the original question (about 95%) which (in hindsight) I feel detracts from: 1. my core question; and 2. the benefit to future readers.
Here is my issue in short:
Is the practice of manually typing in a hash at the start of microdata's itemid and json-ld's @id values valid?
Here is my issue expressed in more detail:
Can I insert a HASH symbol (#) into microdata's itemid values and json-ld's @id values, to create valid resulting URIs with a proper and valid use of a fragment identifier?
So if this is on a web page:
<div itemscope itemtype="http://www.schema.org/Person" itemid="#joe"></div>
Or if this is also on the web page:
{"@context":"http://schema.org",
"@type":"Person",
"@id":"#Joe"}
I understand they will be read to make a uri like this (assuming relative construction by the consumer as Google's structured data tester tool does):
http://www.example.com/page#joe
Is that uri:
a valid uri; and
is it properly using a fragment identifier (HASH)?