Michael Henson wrote:
> On Sat, 2004-11-13 at 02:42 +0800, Petko Petkov wrote:
>
>>I guess it’s a stupid question, but I still do not understand why RDF is better than just XML.
>>I understand that XML is just an approach of describe other markup languages and I believe that
>>RDFS goes on the top of XML. That’s great, but, we are making our lives harder again and again.
>>Simple XML tags are much powerful than RDF statements and the triplets can be represented in much
>>simpler way using namespaces.
>>
>>I have read somewhere that XML and XML Schemas are not good because XSD implies specific rules on
>>the document structure. I find this explanation rather stupid than complete. XSD have the capabilities
>>to include into a particular element different elements that may come from different namespace for example.
>>I examined Firefox structure to see real RDF examples. Although, Firefox is just the best browser in the
>>world, RDFS can be replaced by XML.
>>
>>Can somebody explain to me?
>>
>>Thanks
>>
>
>
> The following article is a decent RDF is not XML intro:
> http://www.betaversion.org/~stefano/linotype/news/57/
and in really short terms:
the XML model has implicit relationships between items, the RDF model
makes them explicit.
So, they are equivalent in term of semantic interoperability of
concepts, but they are not in terms of relationships (you need a more
constrained XML model, which is what RDF/XML gives you).
If you don't care about semantic interoperability of relationships, keep
using XML and be happy. There is nothing wrong in that, but the rest of
the world won't be able to understand your data, even if properly
namespaced because the "meaning" of the nesting of the tags will have to
be 'guessed' by the XML reader.
But if you care about other people using your data without having to
guess their internal relationships, use RDF, or make those relationships
explicit by XSLT transforming your XML into RDF (here, the XSLT will
contain the information that is missing in the XML model).
For more info, you might also want to read Part II of my guide:
http://www.betaversion.org/~stefano/linotype/news/78/
Oh, and it's not a stupid question at all. Actually is a really really
good one and the fact that XML people don't get why RDF is needed is
because the implicitness of relationships is not something that is
bothering people in the XML world since the missing logic is normally
hardcoded in the application that create and digest a particular XML schema.
Coming from that camp, I can tell you that once you start publishing
data without knowing how others are going to use it, well, you do find
XML pretty limiting.
Take this fragment
<1 xmlns="urn:blah:" rdf:about="urn:blah:0">
<2>blah</2>
</1>
let's now interpret it as XML. What is the relationship between
urn:blah:1 and urn:blah:2? well, "isContainedIn" is the only
relationship that we can infer, but what did the schema author wanted to
imply with this nesting? behavior? property? denomination?
Who knows.
[if you think this is never the case, imagine to receive a SOAP envelope
with a properly namespaced chinese payload and imagine writing the code
that handles that!]
Now interpret the above as RDF/XML, it says:
- there is a resource "urn:blah:0"
- this resource has type "urn:blah:1"
- this resource has a relationship urn:blah:2 with a literal value of
"blah"
same syntax, different models. With RDF, the readers of your data can
guess less and know more.
Is this enough to solve the semantic interoperability problem? not at
all, but it's a step forward.
In short, if you can't send logic along with your data (a big security
threat these days!), you have to encode it somehow.
RDF helps.
--
Stefano.