- From: Peter F. Patel-Schneider <pfps@inf.unibz.it>
- Date: Tue, 16 May 2006 13:21:49 -0400 (EDT)
- To: public-rif-wg@w3.org
- Message-Id: <20060516.132149.92306302.pfps@research.bell-labs.com>
In fulfillment of the action item that picked up today (no tracking information available) I submit the following pair of mappings between SWRL and the Boley proposal. Peter F. Patel-Schneider Here are two complete mappings between the proposal syntax and SWRL syntax. I claim that, based on the proposal, that they are as good as any other. Mapping from SWRL to Proposal Syntax M[Antecedent( atom1 ... atomn )] = Or ( M[atom1] ... M[atomn] ) M[description ( i-object )] = M[description] ( M[i-object] ) M[dataRange ( d-object )] = M[dataRange] ( M[d-object] ) M[individualvaluedPropertyID ( i-object1 i-object2 )] = individualvaluedPropertyID ( M[i-object1] M[i-object2] ) M[datavaluedPropertyID ( i-object d-object )] = datavaluedPropertyID ( M[i-object] M[d-object] ) M[sameAs ( i-object1 i-object2 )] = M[i-object1] = M[i-object2] M[differentFrom ( i-object1 i-object2 )] = M[i-object1] = M[i-object2] M[builtIn ( builtinID d-object1 ... d-objectn )] = builtinID ( M[d-object1] ... M[d-objectn] ) M[individualID] = individualID M[dataLiteral] = dataLiteral M[I-variable( URIreference )] = URIreference M[D-variable( URIreference )] = URIreference M[classID] = classID M[restriction] = owl:Thing M[unionOf( description1 ... descriptionn )] = owl:Nothing M[intersectionOf( description1 ... descriptionn ) = owl:Thing M[complementOf( description )] = owl:Nothing M[oneOf( individualID1 ... individualIDn )] = owl:Thing M[datatypeID] = datatypeID M[rdfs:Literal] = rdfs:Literal Mapping from Proposal Syntax to SWRL L[Or ( CONDIT1 ... CONDIT1N )] = Antecedent( N[CONDIT1] ... N[CONDIT1N] ) L[And ( CONDIT1 ... CONDIT1N )] = Antecedent( N[CONDIT1] ... N[CONDIT1N] ) L[LITFORM] = N[LITFORM] L[QUANTIF] = N[QUANTIF] N[Exists Var1 ... Varn ( CONDIT )] = N[CONDIT] N[Rel ( )] = owl:Thing(I-variable(ex:foo)) N[Rel ( TERM1 )] = Rel ( N[TERM1] ) N[Rel ( TERM1 TERM2 )] = Rel ( N[TERM1] N[TERM2] ) N[Rel ( TERM1 TERM2 ... TERMn )] = Rel ( N[TERM1] N[TERM2] ) N[TERM11 = TERM2] = sameAs( N[TERM1] N[TERM2] ) N[Fun( TERM1 ... TERMn )] = ex:foo N[?name] = I-variable( name ) N[object] = object N[value] = value To make this more self-contained, here are the two syntaxes: Proposal Syntax: Data ::= value Ind ::= object Var ::= '?' name TERM ::= Data | Ind | Var | Expr Expr ::= Fun '(' TERM* ')' Atom ::= Rel '(' TERM* ')' | TERM '=' TERM LITFORM ::= Atom QUANTIF ::= 'Exists' Var+ '(' CONDIT ')' CONJ ::= 'And' '(' CONDIT* ')' DISJ ::= 'Or' '(' CONDIT* ')' CONDIT ::= LITFORM | QUANTIF | CONJ | DISJ SWRL Syntax: antecedent ::= 'Antecedent(' atom* ')' atom ::= description '(' i-object ')' | dataRange '(' d-object ')' | individualvaluedPropertyID '(' i-object i-object ')' | datavaluedPropertyID '(' i-object d-object ')' | sameAs '(' i-object i-object ')' | differentFrom '(' i-object i-object ')' | builtIn '(' builtinID d-object * ')' i-object ::= i-variable | individualID d-object ::= d-variable | dataLiteral i-variable ::= 'I-variable(' URIreference ')' d-variable ::= 'D-variable(' URIreference ')' builtinID ::= URIreference dataRange ::= datatypeID | 'rdfs:Literal' description ::= classID | restriction | 'unionOf(' description* ')' | 'intersectionOf(' description* ')' | 'complementOf(' description ')' | 'oneOf(' { individualID } ')' OWL DL restrictions don't play a part in the mapping, and so are not included here. SWRL also has rule ::= 'Implies(' [URIreference] annotation* antecedent consequent ')' consequent ::= 'Consequent(' atom* ')' but they don't play a part here.
Here are two complete mappings between the proposal syntax and SWRL syntax. I claim that, based on the proposal, that they are as good as any other. Mapping from SWRL to Proposal Syntax M[Antecedent( atom1 ... atomn )] = Or ( M[atom1] ... M[atomn] ) M[description ( i-object )] = M[description] ( M[i-object] ) M[dataRange ( d-object )] = M[dataRange] ( M[d-object] ) M[individualvaluedPropertyID ( i-object1 i-object2 )] = individualvaluedPropertyID ( M[i-object1] M[i-object2] ) M[datavaluedPropertyID ( i-object d-object )] = datavaluedPropertyID ( M[i-object] M[d-object] ) M[sameAs ( i-object1 i-object2 )] = M[i-object1] = M[i-object2] M[differentFrom ( i-object1 i-object2 )] = M[i-object1] = M[i-object2] M[builtIn ( builtinID d-object1 ... d-objectn )] = builtinID ( M[d-object1] ... M[d-objectn] ) M[individualID] = individualID M[dataLiteral] = dataLiteral M[I-variable( URIreference )] = URIreference M[D-variable( URIreference )] = URIreference M[classID] = classID M[restriction] = owl:Thing M[unionOf( description1 ... descriptionn )] = owl:Nothing M[intersectionOf( description1 ... descriptionn ) = owl:Thing M[complementOf( description )] = owl:Nothing M[oneOf( individualID1 ... individualIDn )] = owl:Thing M[datatypeID] = datatypeID M[rdfs:Literal] = rdfs:Literal Mapping from Proposal Syntax to SWRL L[Or ( CONDIT1 ... CONDIT1N )] = Antecedent( N[CONDIT1] ... N[CONDIT1N] ) L[And ( CONDIT1 ... CONDIT1N )] = Antecedent( N[CONDIT1] ... N[CONDIT1N] ) L[LITFORM] = N[LITFORM] L[QUANTIF] = N[QUANTIF] N[Exists Var1 ... Varn ( CONDIT )] = N[CONDIT] N[Rel ( )] = owl:Thing(I-variable(ex:foo)) N[Rel ( TERM1 )] = Rel ( N[TERM1] ) N[Rel ( TERM1 TERM2 )] = Rel ( N[TERM1] N[TERM2] ) N[Rel ( TERM1 TERM2 ... TERMn )] = Rel ( N[TERM1] N[TERM2] ) N[TERM11 = TERM2] = sameAs( N[TERM1] N[TERM2] ) N[Fun( TERM1 ... TERMn )] = ex:foo N[?name] = I-variable( name ) N[object] = object N[value] = value To make this more self-contained, here are the two syntaxes: Proposal Syntax: Data ::= value Ind ::= object Var ::= '?' name TERM ::= Data | Ind | Var | Expr Expr ::= Fun '(' TERM* ')' Atom ::= Rel '(' TERM* ')' | TERM '=' TERM LITFORM ::= Atom QUANTIF ::= 'Exists' Var+ '(' CONDIT ')' CONJ ::= 'And' '(' CONDIT* ')' DISJ ::= 'Or' '(' CONDIT* ')' CONDIT ::= LITFORM | QUANTIF | CONJ | DISJ SWRL Syntax: antecedent ::= 'Antecedent(' atom* ')' atom ::= description '(' i-object ')' | dataRange '(' d-object ')' | individualvaluedPropertyID '(' i-object i-object ')' | datavaluedPropertyID '(' i-object d-object ')' | sameAs '(' i-object i-object ')' | differentFrom '(' i-object i-object ')' | builtIn '(' builtinID d-object * ')' i-object ::= i-variable | individualID d-object ::= d-variable | dataLiteral i-variable ::= 'I-variable(' URIreference ')' d-variable ::= 'D-variable(' URIreference ')' builtinID ::= URIreference dataRange ::= datatypeID | 'rdfs:Literal' description ::= classID | restriction | 'unionOf(' description* ')' | 'intersectionOf(' description* ')' | 'complementOf(' description ')' | 'oneOf(' { individualID } ')' OWL DL restrictions don't play a part in the mapping, and so are not included here. SWRL also has rule ::= 'Implies(' [URIreference] annotation* antecedent consequent ')' consequent ::= 'Consequent(' atom* ')' but they don't play a part here.
Received on Tuesday, 16 May 2006 22:31:27 UTC