- From: Sean Bechhofer <seanb@cs.man.ac.uk>
- Date: Thu, 20 Feb 2003 16:24:50 +0000 (GMT Standard Time)
- To: WebOnt WG <www-webont-wg@w3.org>
To widen the imports discussion a bit, we're a little confused about what do with the following situations. Remember that what we're trying to do is build some application support for OWL models, which effectively involves producing a structure that implements something that looks very like the abstract syntax. So an ontology has a bunch of classes, properties and individuals in it and these have various definitions etc. In order to cope with the fact that we can have triples that say things like: x rdf:type owl:Ontology in an ontology, we also need to record information about ontologies. So take the following example: Case 1: URL A: -------------- A rdf:type owl:Ontology B rdf:type owl:Ontology C rdf:type owl:Ontology B owl:imports C What do we do here? Well, I can see that we probably want to record the fact that A has some reference to the ontologies B and C, and that within this context there's an assertion that B imports C. But does it have an operational semantics with respect to A? Are there any triples that I have to fetch now ? Case 2: URL A: ------------------- A rdf:type owl:Ontology B rdf:type owl:Ontology C rdf:type owl:Ontology B imports C A imports B According to the specification we will have to import everything that we can find at B. If we have to import everything that we can find at C as well (which I assume is the case), then there are some additional operational semantics here. There are also some round tripping/import issues connected to the use of owl:Ontology. Say I state <owl:Ontology rdf:about=""> <owl:imports rdf:resource="X" /> </owl:Ontology> in file A: after parsing we have a triple saying <A, rdf:type, owl:Ontology> Now if I deserialize it again into a new file, say B, what should I do write? <A, rdf:type, owl:Ontology> or <B, rdf:type, owl:Ontology> or <owl:Ontology rdf:about=""> There is no way to tell the correct intention. If I change it to B, the imports breaks since triples are not connected in any way if they share the same subject. So I might end up with a triple <A, imports, C> in file/URL B The imports problems boil down again to RDF since the file (not the RDF model) imports another file/URL. So it is meta-information outside the RDF model which itself constitutes the ontology. The same is true for the Ontology meta-information, which should talk about the model URL. In KAON, inclusion was realised a completely different way, by writing inclusion as a XML preprocessor statement. One can then enforce the deserialization of imported entities before the particular RDF file is deserialized. <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE rdf:RDF (View Source for full doctype...)> <?include-rdf logicalURI="http://kaon.semanticweb.org/2001/11/kaon-root"?> <?model-attribute key="OIModel.version" value="206"?> <rdf:RDF xml:base="http://kaon.semanticweb.org/kaon/server/component" xmlns:kaon="http://kaon.semanticweb.org/2001/11/kaon-lexical#" xmlns:a="http://kaon.semanticweb.org/kaon/server/component#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"> .... </rdf:RDF> Cheers, Sean & Raphael -- Sean Bechhofer seanb@cs.man.ac.uk http://www.cs.man.ac.uk/~seanb
Received on Thursday, 20 February 2003 11:25:48 UTC