Re: Why bound prefixes are an anti-pattern in language design

Hello all, My this has turned into a mighty discussion .....

Ian Hickson wrote:
> On Sat, 8 Aug 2009, Martin McEvoy wrote:
>   
>> Three things one must do to avoid becoming a Cargo Cult scientist...
>>
>> 1, " researchers must first of all avoid fooling themselves"
>>
>>   Reverse DNS Identifiers, They are just backwards urls right!
>>     
>
> No, they have several properties that URIs do not: They can't be 
> dereferenced, so there's no illusion of extra meaning; they are purely 
> identifiers, not locators. They're shorter, and they use less punctuation, 
> leading to a cleaner syntax.
>
> Note that Microdata allows URIs to be used as well, though. You don't have 
> to use reverse DNS identifiers if you don't want to.
>
>   

Yes I read that in section 5.1.3

http://dev.w3.org/html5/spec/Overview.html#selecting-names-when-defining-vocabularies

I must have missed it ;) still reverse DNS identifiers are not really 
people friendly, and make your markup very bulky, I think microdata 
should have not included them, but that's my personal taste I guess.

>   
>>  2, "be willing to question and doubt their own theories and their own 
>> results"
>>
>>   'Prefixes are an anti-pattern and notoriously hard for authors to
>> understand'.
>>     
>
> I think there's ample evidence of this. I haven't just jumped to this 
> conclusion, I've thought about
I think that's more to do with where your thinking started from. In the 
RDF world (which is what the RDFa logical model is based on) prefixes 
are good, even necessary to convey the intended semantics of RDF , most 
people who are used to RDF have no trouble understanding what prefixes 
are for. Prefixes  in the html world however are not common or 
convenient and little understood.

So another way....

The reason why I have taken so long in answering is because I have been 
testing my own theories "are prefixes necessary" forget if they are 
understood or not, some say yes some say no its personal taste and style 
if you do or not.

The simplest solution I have found is based on something you said about 
twitter and its use of json, I'm calling it a "dataset" for want of a 
word and uses json. The reason why I chose Json is that it can be parsed 
relatively easily by pretty much everything, and its easy to build a 
validator for json data.

A dataset is kind of like a semantic style-sheet its used to convey the 
authors intended meaning of a page to a machine without embedding the 
raw data into the page, the physical model and the logical model are 
separated.

Some examples:

Here is a page marked up with HTML5 microdata:  
http://getsemantic.info/test/dataset.html
there is nothing unusual about it other than there is a link in the head 
of the page using @rel=dataset, this tells the parser where the data is.

This is the dataset http://getsemantic.info/test/data.json

you are only able to define four attributes

"term" : "your term" ie: date
"prefix" : "the scope of your term" ie: dcterms
"ref" : "how the term is to be referenced" ie : 
http://purl.org/dc/terms/date
"datatype" : "the datatype of your term" ie: 
http://www.w3.org/2001/XMLSchema#date

the json data is parsed along with the html matching terms from the html 
with terms in the dataset.

Here is an example of the parsed data 
http://weborganics.co.uk/test/test.php?url=http://getsemantic.info/test/dataset.html

Its all been a pretty cool experience in all, I have tested the above 
theory in RDFa too it works just as well.

>> 3, "investigate possible flaws in a theory "
>>
>> The whole of your design concept (linking machine data together causing 
>> a long string "foo.example.directory.page#" ) was discussed in depth 
>> over on Microformats New around two and a half years ago but if you had 
>> talked to somebody about your "Idea" maybe someone could have stopped 
>> you from wasting your time, in short It was generally thought of as a 
>> bad Idea.
>>     
>
> Microdata is not 'linking machine data together causing a long string 
> "foo.example.directory.page#"'; what suggested that? If the spec isn't 
> clear about this, I should fix it. What gave you that impression?
>
>   

The big long strings ie: org.example.animal.cat and org.example.name, ok 
they are not "particularly" long strings but I can see authors writing 
things like com.example.tag.cat# there is no real difference in what I 
stated above, its a good idea I think to drop reverse DNS from the HTML5 
spec, there is really no need for it to be there, if you do I expect  
people will warm to microdata a lot more.

Best wishes

-- 
Martin McEvoy
http://weborganics.co.uk/

Received on Tuesday, 11 August 2009 22:25:39 UTC