> No. Providing the users of TBC with a function to export and import 
> OWL/XML has absolutely no impact of the use and benefit of XML/RDF. None 
> whatsoever.

Hi Peter,

I actually do anticipate a lot of problems, and supporting OWL/XML may have a 
large impact on the way that people use our tools, as well as the community. In 
my personal opinion, OWL/XML may actually be harmful for the RDF/Linked Data 
community.

Here is why: OWL/XML does not support RDF full stop. It can only save and load 
OWL models. If people switch to OWL/XML then they are forced to change their 
RDF models (i.e. their triples and contents) to OWL.

Please try the following. Open the following RDF/XML file with Protege 4 (which 
uses the OWL API).

<?xml version="1.0"?>
<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#";
    xmlns:owl="http://www.w3.org/2002/07/owl#";
    xmlns:xsd="http://www.w3.org/2001/XMLSchema#";
    xmlns="http://tests.sparqlmotion.topbraid.org/controlflow/rdfXMLTest#";
    xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#";
  xml:base="http://tests.sparqlmotion.topbraid.org/controlflow/rdfXMLTest";>
  <owl:Ontology rdf:about="">
    <owl:versionInfo rdf:datatype="http://www.w3.org/2001/XMLSchema#string";
    >Created with TopBraid Composer</owl:versionInfo>
  </owl:Ontology>
  <rdfs:Class rdf:ID="MyClass">
    <rdfs:label rdf:datatype="http://www.w3.org/2001/XMLSchema#string";
    >My class</rdfs:label>
  </rdfs:Class>
  <rdf:Property rdf:ID="myProperty">
    <rdfs:label rdf:datatype="http://www.w3.org/2001/XMLSchema#string";
    >my property</rdfs:label>
  </rdf:Property>
</rdf:RDF>

<!-- Created with TopBraid -->


Now, use Protege to save this to OWL/XML. You will get:

<?xml version="1.0"?>


<!DOCTYPE Ontology [
    <!ENTITY owl "http://www.w3.org/2002/07/owl#"; >
    <!ENTITY xsd "http://www.w3.org/2001/XMLSchema#"; >
    <!ENTITY owl2xml "http://www.w3.org/2006/12/owl2-xml#"; >
    <!ENTITY rdfs "http://www.w3.org/2000/01/rdf-schema#"; >
    <!ENTITY rdf "http://www.w3.org/1999/02/22-rdf-syntax-ns#"; >
    <!ENTITY rdfXMLTest 
"http://tests.sparqlmotion.topbraid.org/controlflow/rdfXMLTest#"; >
]>


<Ontology xmlns="http://www.w3.org/2006/12/owl2-xml#";
     xml:base="http://www.w3.org/2006/12/owl2-xml#";
     xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#";
     xmlns:owl2xml="http://www.w3.org/2006/12/owl2-xml#";
     
xmlns:rdfXMLTest="http://tests.sparqlmotion.topbraid.org/controlflow/rdfXMLTest#";
     xmlns:owl="http://www.w3.org/2002/07/owl#";
     xmlns:xsd="http://www.w3.org/2001/XMLSchema#";
     xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#";
     URI="http://tests.sparqlmotion.topbraid.org/controlflow/rdfXMLTest";>
    <Annotation annotationURI="&owl;versionInfo">
        <Constant datatypeURI="&xsd;string"
            >Created with TopBraid Composer</Constant>
    </Annotation>
    <EntityAnnotation>
        <Class URI="&rdfXMLTest;MyClass"/>
        <Annotation annotationURI="&rdfs;label">
            <Constant datatypeURI="&xsd;string">My class</Constant>
        </Annotation>
    </EntityAnnotation>
    <EntityAnnotation>
        <Individual URI="&rdfXMLTest;myProperty"/>
        <Annotation annotationURI="&rdfs;label">
            <Constant datatypeURI="&xsd;string">my property</Constant>
        </Annotation>
    </EntityAnnotation>
</Ontology>



<!-- Generated by the OWL API (version 2.2.1.1138) 
http://owlapi.sourceforge.net -->

Now save this file to RDF/XML again, and you get:

<?xml version="1.0"?>


<!DOCTYPE rdf:RDF [
    <!ENTITY owl "http://www.w3.org/2002/07/owl#"; >
    <!ENTITY xsd "http://www.w3.org/2001/XMLSchema#"; >
    <!ENTITY owl2xml "http://www.w3.org/2006/12/owl2-xml#"; >
    <!ENTITY rdfs "http://www.w3.org/2000/01/rdf-schema#"; >
    <!ENTITY rdf "http://www.w3.org/1999/02/22-rdf-syntax-ns#"; >
    <!ENTITY rdfXMLTest 
"http://tests.sparqlmotion.topbraid.org/controlflow/rdfXMLTest#"; >
]>


<rdf:RDF xmlns="http://tests.sparqlmotion.topbraid.org/controlflow/rdfXMLTest#";
     xml:base="http://tests.sparqlmotion.topbraid.org/controlflow/rdfXMLTest";
     xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#";
     xmlns:owl2xml="http://www.w3.org/2006/12/owl2-xml#";
     
xmlns:rdfXMLTest="http://tests.sparqlmotion.topbraid.org/controlflow/rdfXMLTest#";
     xmlns:owl="http://www.w3.org/2002/07/owl#";
     xmlns:xsd="http://www.w3.org/2001/XMLSchema#";
     xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#";>
    <owl:Ontology rdf:about="">
        <owl:versionInfo rdf:datatype="&xsd;string"
            >Created with TopBraid Composer</owl:versionInfo>
    </owl:Ontology>
    


    <!-- 
    
///////////////////////////////////////////////////////////////////////////////////////
    //
    // Classes
    //
    
///////////////////////////////////////////////////////////////////////////////////////
     -->

    


    <!-- http://tests.sparqlmotion.topbraid.org/controlflow/rdfXMLTest#MyClass 
-->

    <owl:Class rdf:about="#MyClass">
        <rdfs:label rdf:datatype="&xsd;string">My class</rdfs:label>
    </owl:Class>
    


    <!-- 
    
///////////////////////////////////////////////////////////////////////////////////////
    //
    // Individuals
    //
    
///////////////////////////////////////////////////////////////////////////////////////
     -->

    


    <!-- 
http://tests.sparqlmotion.topbraid.org/controlflow/rdfXMLTest#myProperty -->

    <owl:Thing rdf:about="#myProperty">
        <rdfs:label rdf:datatype="&xsd;string">my property</rdfs:label>
    </owl:Thing>
</rdf:RDF>



<!-- Generated by the OWL API (version 2.2.1.1138) 
http://owlapi.sourceforge.net -->


You notice something?! The rdf:Property has been transformed into an owl:Thing. 
The rdfs:Class has been made an owl:Class. The file has been silently changed, 
and now contains completely different triples. There are many more examples of 
this in the OWL API, where a model will be changed only in order to accommodate 
the limitations of the serialization (and the internal data model).

Only the RDF-based formats such as RDF/XML and N3/Turtle will preserve your 
data without changing it.

The OWL/XML serialization was fundamentally unnecessary IMHO. The real problem 
is not that RDF/XML is broken. The main problem is that many RDF/XML writers 
are not using it well. It is actually very well possible to have nicely 
parseable RDF/XML files that are XSLT friendly. We just switch off the various 
options that exist in the RDF/XML syntax and use only one of the many 
possibilities. The OWL API actually makes a very good job in this, as the 
resulting RDF/XML files are very readable even for humans.

You will have much better chances convincing us (esp quickly) to do a more 
regular RDF/XML output that might actually meet your customer requirements 
without sacrificing breaking the RDF stack.

Having said this, we very much welcome input to hear whether solutions like the 
above are not workable. In this respect I would like to see examples of how the 
RDF/XML syntax should be changed (tuned) to be XSLT'able. If not, we could add 
an Export Wizard that has warning signs attached to it with large letters 
saying "THIS SAVE OPERATION WILL MODIFY YOUR MODEL".

Regards,
Holger

--

You received this message because you are subscribed to the Google Groups 
"TopBraid Composer Users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/topbraid-composer-users?hl=en.


Reply via email to