-
Notifications
You must be signed in to change notification settings - Fork 13
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ext
not re-usable in profile.
#7
Comments
first, as for abstract-ness. i'd like to see some examples. FWIW, in my head, it seems that what appears within
|
"Also, seems like some more instructions as to what should be an an extension document as an example. If it is just human readable name, why the need for the human readable tag in extension itself." IIUYC, the point is that any reasonably complex extension is likely to need some documentation and that is where it goes. IMO, if the extension is incredibly simple, the Open to other ideas and willing incorporate this into the docs. |
Ok. I think I see where the re-usability issue lies. If I define an extension and I set its value in a specific profile, how can I reuse that ext definition and its value in the same profile because if it is not a relative fragment, and thus it implies an external reference. That is on what basis would I look inside the current profile to find the definition of that extension value. Make sense? Contrived example:
Does that clarify? How do I stay DRY for an extension. I also ponder how could one reuse that extension across different profiles with it's defined value. Your example includes and id attribute that could allow that, but there is not id property on the Further, the following references a 'name' property that is confusing because you say there are only 2 properties href and value: https://github.com/alps-io/spec/blob/master/draft-00.txt#L717-L719 So, I think that wording needs to be cleaned up as well. |
The last item you mention here (mentioning the |
OK, as this is starting to get out of hand, I think this is more than a clarification issue. Originally, I added IIRC, @leonardr was not a fan of this element (possibly for this very reason), too. Now, even though I like it, maybe it needs to go away? |
I think ext is valuable. Should be reusable and possibly reference another descriptor to define its value. |
took another stab at clearing up the definition here. this includes adding check it out here and post any comments before i close this out: 7a20fde |
@mamund This is better, but I am not sure it addresses the reusability aspect of an extension within a document. How does having a required That is, since <ext id="something">
<descriptor id="something_else">
<ext href="#something"/>
</descriptor> and you could not reference an extension in an external profile either. Sort of a bit of a pickle on this one. How do you see re-using this in a doc? Also, now that I am thinking about it, you only define fragments in the context of descriptors, so there is no clear convention for referencing an external Sort of makes me wonder if the best way to do this would be to have a descriptor type=ext and do this in the context of extending a descriptor with related properties. Anyhow, am I missing something? |
Actually, if you use |
@mamund And yet deeper in I see this: https://github.com/alps-io/spec/blob/master/draft-00.txt#L1029-L1035 which basically shows how to extend a descriptor and re-use it. So, this is probably the answer, but I think it warrants highlighting this as the approach to re-use. Not sure the average man will savy this. Should this be here, or in the best practices document I am 'supposed' to be working on? However, this would not address re-usability on the ALPS level vs descriptor level. |
@mamund and one more thing, do you think value should be an attribute of extension only or a tag or could I embed some object in the extension tag itself (seems one might want to do something that involves more than what you would want to define in an attribute). If I can embed some value or object in the tag, does that need some clarification? |
And at the extent of beating this horse well beyond death and recognition, the nice thing about my proposed constraint about doc/href for the docmentation and freeing up href is the idea that you can extend extensions, which reminds me of our dynamic extension discussion as we were walking around the piers searching for a restaurant if my memory serves me correctly. |
@mamund I think I have a work around for simple re-usability that could close out this issue. That is, the href can point to another element either relatively in the same document or in another ALPS document just like a descriptor. The caveat is that you can only href an tag that has an href to human readable documents. You could ease this so you could extend other elements if somewhere it resolves to human readable documents. Other approach is to decouple href from human readable meaning and use a element with a help rel or something. In any case, wanted to throw this idea in the mix. |
i've read this through a couple times and can't come up w/ how this |
@mamund Couple of thoughts.
An example is if I am using an extension to say that a descriptor is a list data type or an enum, I may want to decorate more than one descriptor that way in a document.
The issue here is this, re-use, that is referencing is accomplished by What is being extended, an I think the right way to solve all this is something like this:
This would be a breaking change in the current spec, but I think it is the correct way to do this. |
Sounds reasonable. Write up some examples to show how it works and we can discuss. |
Couple possibilities: <alps>
<ext id="reusable-enum-def" value="on off" />
<descriptor id="switch" type="semantic">
<ext href="#reusable-enum-def/>
</descriptor>
<descriptor id="light-bulb" type="semantic">
<ext href="#reusable-enum-def"/>
</descriptor>
</alps> or support <alps>
<ext id="reusable-enum-def" value="on off" />
<descriptor id="switch" type="semantic" ext="#reusable-enum-def"/>
<descriptor id="light-bulb" type="semantic" ext="#reusable-enum-def"/>
</alps> |
@mamund These examples clarify? |
not yet. first one make sense but second one (as attribute) doesn't yet. i'm wary of using EXT references as they are not returning the same thing as other refs (DOC and LINK). we may be running into challenges on what to expect in reply there's a REL on LINK, there's an implied expectation on DOC and now w/ EXT as a possible href there are additional challenges. we should proly discuss this one live sometime to sort things out, eh? |
Yes. We are not consistent on uses of the same thing @mamund across different components |
Currently, the
ext
tag needs an href or something to allow it to be re-usable. Further, I think it needs to support a more abstract meaning potentially than something as concrete as the example here: https://github.com/alps-io/spec/blob/master/draft-00/draft-00.txt#L978It may already do that, but I think an example would be good, where one may want to indicate some metadata about a list of options, vs. the actual options which may change at runtime.
Also, seems like some more instructions as to what should be an an extension document as an example. If it is just human readable name, why the need for the human readable tag in extension itself.
The text was updated successfully, but these errors were encountered: