[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: My Conclusion re An RDF/S/OWL-DL representation
The overlap of requirements addressed by RDF/S/OWL and the requirements of a TAG markup are very interesting and make RDF/S/OWL attractive for marking up a Test Assertion. However I think there are a few very significant mismatches (as far as I understand it): * OWL and to some extent RDF/S have been designed for an 'Open System' where any set of assertions can be mixed with any other * there is no weighting of one assertion over another, each have equal weight * the set of assertions stated with RDF/S/OWL cannot be closed to further assertions or given precedence over other assertions * one assertion in OWL cannot replace a previous one, only supplement it I feel these and a few other features of RDF/S/OWL make it on the whole a poor match for some of the important aspects of test assertions and so I wouldn't particularly favor its use for TAs. Mostly this is due to the need to designate a set of assertions as being in some way complete and authoritative and part of a particular group. Of course this is a matter of degree in that further assertions might well be added, but not as freely, I feel, as OWL would allow. Further developments in the Semantic Web do seem to be addressing such less-open system requirements but it remains to be seen whether this will lead to something useful enough for test assertions, I think. -- Stephen D. Green Partner SystML, http://www.systml.co.uk Tel: +44 (0) 117 9541606 http://www.biblegateway.com/passage/?search=matthew+22:37 .. and voice Quoting stephen.green@systml.co.uk: > A roundtrip works quite well, to get an idea of how others > might use RDF/RDFS/OWL to represent the same Test Assertion > model/example. An export from the semantic wiki Halo project > (which imports well back into the wiki) looks like this for > the exact same example: > > <?xml version="1.0" encoding="UTF-8"?> > <!DOCTYPE rdf:RDF[ > <!ENTITY rdf 'http://www.w3.org/1999/02/22-rdf-syntax-ns#'> > <!ENTITY rdfs 'http://www.w3.org/2000/01/rdf-schema#'> > <!ENTITY owl 'http://www.w3.org/2002/07/owl#'> > <!ENTITY smw 'http://smw.ontoware.org/2005/smw#'> > <!ENTITY smwdt 'http://smw.ontoware.org/2005/smw-datatype#'> > <!ENTITY wiki 'http://localhost/mediawiki/index.php/Special:URIResolver/'> > <!ENTITY wikiurl 'http://localhost/mediawiki/index.php/'> > <!ENTITY property > 'http://localhost/mediawiki/index.php/Special:URIResolver/Property-3A/'> > ]> > > <rdf:RDF > xmlns:rdf="&rdf;" > xmlns:rdfs="&rdfs;" > xmlns:owl ="&owl;" > xmlns:smw="&smw;" > xmlns:wiki="&wiki;" > xmlns:wikiurl="&wikiurl;" > xmlns:property="&property;"> > <!-- Ontology header --> > <owl:Ontology rdf:about=""> > <smw:exportDate > rdf:datatype="http://www.w3.org/2001/XMLSchema#dateTime">2008-01-28T10:00:16+00:00</smw:exportDate> > </owl:Ontology> > <!-- exported page data --> > <smw:Thing rdf:about="&wiki;Widget_precondition1"> > <rdfs:label>Widget precondition1</rdfs:label> > > <smw:hasArticle rdf:resource="&wikiurl;Widget_precondition1"/> > <rdfs:isDefinedBy > rdf:resource="&wikiurl;Special:ExportRDF/Widget_precondition1"/> > <rdf:type rdf:resource="&wiki;Category-3AWidget"/> > <property:Property rdf:resource="&wiki;WidgetSize_Medium"/> > </smw:Thing> > <smw:Thing rdf:about="&wiki;Widget_ta001"> > <rdfs:label>Widget ta001</rdfs:label> > <smw:hasArticle rdf:resource="&wikiurl;Widget_ta001"/> > > <rdfs:isDefinedBy rdf:resource="&wikiurl;Special:ExportRDF/Widget_ta001"/> > <rdf:type rdf:resource="&wiki;Category-3AWidget"/> > <property:Prose > rdf:datatype="http://www.w3.org/2001/XMLSchema#string">has a red button > on top</property:Prose> > <property:SpecRef > rdf:datatype="http://www.w3.org/2001/XMLSchema#string">101:1a</property:SpecRef> > <property:Precondition rdf:resource="&wiki;Widget_precondition1"/> > </smw:Thing> > <!-- auxilliary definitions --> > <owl:ObjectProperty rdf:about="&property;Precondition"> > > <rdfs:label>Precondition</rdfs:label> > <smw:hasArticle rdf:resource="&wikiurl;Property:Precondition"/> > <rdfs:isDefinedBy > rdf:resource="&wikiurl;Special:ExportRDF/Property:Precondition"/> > </owl:ObjectProperty> > <owl:DatatypeProperty rdf:about="&property;SpecRef"> > <rdfs:label>SpecRef</rdfs:label> > <smw:hasArticle rdf:resource="&wikiurl;Property:SpecRef"/> > <rdfs:isDefinedBy > rdf:resource="&wikiurl;Special:ExportRDF/Property:SpecRef"/> > > </owl:DatatypeProperty> > <owl:DatatypeProperty rdf:about="&property;Prose"> > <rdfs:label>Prose</rdfs:label> > <smw:hasArticle rdf:resource="&wikiurl;Property:Prose"/> > <rdfs:isDefinedBy > rdf:resource="&wikiurl;Special:ExportRDF/Property:Prose"/> > </owl:DatatypeProperty> > <smw:Thing rdf:about="&wiki;WidgetSize_Medium"> > <rdfs:label>WidgetSize Medium</rdfs:label> > > <smw:hasArticle rdf:resource="&wikiurl;WidgetSize_Medium"/> > <rdfs:isDefinedBy > rdf:resource="&wikiurl;Special:ExportRDF/WidgetSize_Medium"/> > </smw:Thing> > <owl:ObjectProperty rdf:about="&property;Property"> > <rdfs:label>Property</rdfs:label> > <smw:hasArticle rdf:resource="&wikiurl;Property:Property"/> > <rdfs:isDefinedBy > rdf:resource="&wikiurl;Special:ExportRDF/Property:Property"/> > </owl:ObjectProperty> > > <owl:Class rdf:about="&wiki;Category-3AWidget"> > <rdfs:label>Widget</rdfs:label> > <smw:hasArticle rdf:resource="&wikiurl;Category:Widget"/> > <rdfs:isDefinedBy > rdf:resource="&wikiurl;Special:ExportRDF/Category:Widget"/> > </owl:Class> > <!-- reference to the Semantic MediaWiki schema --> > <owl:AnnotationProperty rdf:about="&smw;hasArticle"> > <rdfs:isDefinedBy rdf:resource="http://smw.ontoware.org/2005/smw"/> > > </owl:AnnotationProperty> > <owl:AnnotationProperty rdf:about="&smw;exportDate"> > <rdfs:isDefinedBy rdf:resource="http://smw.ontoware.org/2005/smw"/> > </owl:AnnotationProperty> > <owl:Class rdf:about="&smw;Thing"> > <rdfs:isDefinedBy rdf:resource="http://smw.ontoware.org/2005/smw"/> > </owl:Class> > <!-- Created with Semantic MediaWiki, http://ontoworld.org/wiki/SMW --> > </rdf:RDF> > > -- > Stephen D. Green > > Partner > SystML, http://www.systml.co.uk > Tel: +44 (0) 117 9541606 > > http://www.biblegateway.com/passage/?search=matthew+22:37 .. and voice > > > > Quoting stephen.green@systml.co.uk: > >> Attached is a screen dump of how this representation looks in >> the semantic wiki. It revealed a few modeling issues... >> >> [Incidentally there was a missing spec ref - it should look like this: >> >> <Widget rdf:ID="Widget_precondition1"> >> <property> >> <WidgetSize rdf:ID="WidgetSize_Medium"/> >> </property> >> </Widget> >> <Widget rdf:ID="Widget_ta001"> >> <specRef >> rdf:datatype="http://www.w3.org/2001/XMLSchema#string">101:1a</specRef> >> <prose rdf:datatype="http://www.w3.org/2001/XMLSchema#string">has a >> red button on top</prose> >> <precondition rdf:resource="#Widget_precondition1"/> >> </Widget> >> ] >> >> There is an issue to note, I think, with the use of a 'precondition' >> - it is a bit of a modeling problem in that the precondition actually >> functions as a restricted subclass of the test assertion or its predicate. >> >> * If the precondition is itself a predicate it needs everything >> a test assertion needs except the spec ref. I.e. maybe it needs >> its own ID so one precondition can be used in multiple predicates. >> >> * This then leads to some issues: >> >> * Why not then just use an assertion? >> >> * What then is the difference between precondition and prerequisite? >> >> * Doesn't this logic mean that a test assertion actually amounts >> an extension of a superclass which is an assertion (extended by >> adding spec ref)? >> * Then a prerequisite could be the equivalent of a precondition >> in that both reference both assertions and test assertions (or >> instantiate, rather than reference the assertion and test >> assertion classes). >> >> * So having a new superclass of test assertion called 'assertion' >> could answer three problems: >> 1. no need for both prerequisites and preconditions >> 2. distinction between >> a. test assertions and >> b. assertions/predicates which aren't test assertions as such >> 3. a different target can be associated with the assertion/predicate >> of the precondition/prerequisite - a different target to the TA's >> >> Another issue arose while trying to implement the model: >> >> Does a TA have a target or does a target have a TA? >> >> The latter proves to be most useful in my example (to allow grouping >> of TAs under the category of a shared target or target class). >> >> Best regards >> - Steve >> >>> I tried the OWL-DL representation with WikiMedia's SemanticWiki >>> / Halo Project OWL extensions and found that it needed tightening >>> up a lot more (eliminating the redundant elements). >>> >>> This resulted in the representation below which seems quite satisfactory >>> as a mere demo of how a TA might be represented for the semantic web: >>> >>> <?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="http://localhost#" >>> xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" >>> xml:base="http://localhost"> >>> <owl:Ontology rdf:about=""/> >>> <owl:Class rdf:ID="Property"/> >>> <owl:Class rdf:ID="WidgetSize"> >>> <rdfs:subClassOf> >>> <owl:Class rdf:ID="Size"/> >>> </rdfs:subClassOf> >>> </owl:Class> >>> <owl:Class rdf:ID="Target"/> >>> <owl:Class rdf:about="#Size"> >>> <rdfs:subClassOf rdf:resource="#Property"/> >>> </owl:Class> >>> <owl:Class rdf:ID="Widget"> >>> <rdfs:subClassOf rdf:resource="#Target"/> >>> </owl:Class> >>> <owl:ObjectProperty rdf:ID="precondition"> >>> <rdfs:domain rdf:resource="#Target"/> >>> </owl:ObjectProperty> >>> <owl:DatatypeProperty rdf:ID="prerequisite"> >>> <rdfs:domain rdf:resource="#Target"/> >>> <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/> >>> </owl:DatatypeProperty> >>> <owl:DatatypeProperty rdf:ID="specRef"> >>> <rdfs:domain rdf:resource="#Target"/> >>> <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/> >>> </owl:DatatypeProperty> >>> <owl:FunctionalProperty rdf:ID="property"> >>> <rdfs:domain rdf:resource="#Target"/> >>> <rdfs:range rdf:resource="#Property"/> >>> <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/> >>> </owl:FunctionalProperty> >>> <owl:FunctionalProperty rdf:ID="value"> >>> <rdfs:domain rdf:resource="#Property"/> >>> <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/> >>> <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/> >>> </owl:FunctionalProperty> >>> <owl:FunctionalProperty rdf:ID="prose"> >>> <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/> >>> <rdfs:domain rdf:resource="#Target"/> >>> <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/> >>> </owl:FunctionalProperty> >>> <Widget rdf:ID="Widget_precondition1"> >>> <property> >>> <WidgetSize rdf:ID="WidgetSize_Medium"/> >>> </property> >>> </Widget> >>> <owl:AllDifferent/> >>> <Widget rdf:ID="Widget_ta001"> >>> <specRef rdf:datatype="http://www.w3.org/2001/XMLSchema#string"/> >>> <prose rdf:datatype="http://www.w3.org/2001/XMLSchema#string">has a >>> red button on top</prose> >>> <precondition rdf:resource="#Widget_precondition1"/> >>> </Widget> >>> </rdf:RDF> >>> <!-- Created with Protege (with OWL Plugin 3.3.1, Build 430) >>> http://protege.stanford.edu --> >>> >>> >>> -- >>> Stephen D. Green >>> >>> Partner >>> SystML, http://www.systml.co.uk >>> Tel: +44 (0) 117 9541606 >>> >>> http://www.biblegateway.com/passage/?search=matthew+22:37 .. and voice >>> >>> >>> >>> Quoting stephen.green@systml.co.uk: >>> >>>> Second attempt after first seems to have got stuck (in filters?) >>>> This time with attachment as zip >>>> >>>> Contains two OWL files, one with a TA ontology - classes and properties, >>>> the other with an example individual TA in OWL-DL using the ontology. >>>> >>>> -- >>>> Stephen D. Green >>>> >>>> Partner >>>> SystML, http://www.systml.co.uk >>>> Tel: +44 (0) 117 9541606 >>>> >>>> http://www.biblegateway.com/passage/?search=matthew+22:37 .. and voice >>> >>> > > > > > --------------------------------------------------------------------- > To unsubscribe from this mail list, you must leave the OASIS TC that > generates this mail. You may a link to this group and all your TCs in OASIS > at: > https://www.oasis-open.org/apps/org/workgroup/portal/my_workgroups.php
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]