diff --git a/DumpClasses.jrag b/DumpClasses.jrag index d31290fafd85ee68d9aeb40cd0b9ecd0ff53e3b6..bdde28119a82bdb6556add72369d9c879fc0eb4d 100644 --- a/DumpClasses.jrag +++ b/DumpClasses.jrag @@ -19,12 +19,12 @@ aspect DumpClasses { pStream.print(" ::= "); Properties props = getProperties(); for (int i=0; i<props.getNumProperty(); i++) { - pStream.print("<"); +// pStream.print("<"); pStream.print(props.getProperty(i).getId()); - pStream.print(":"); - pStream.print(props.getProperty(i).range().type()); - pStream.print(">"); - pStream.print(" "); +// pStream.print(":"); +// pStream.print(props.getProperty(i).range().type()); +// pStream.print(">"); +// pStream.print(" "); } pStream.println(";"); } diff --git a/Types.jrag b/Types.jrag index a24baa5fe0923620fecd35d74b4d29f26e414d4b..8778a43a1d9799b437e6350059056a65b57b55df 100644 --- a/Types.jrag +++ b/Types.jrag @@ -39,26 +39,28 @@ aspect Types { syn lazy Properties OwlClassDecl.getProperties() { List l = new List(); - getTopElement().collectObjectProperties(l); - Properties p = new Properties(); - for (int i=0; i<l.getNumChild(); i++) { - OwlObjectProperty op = (OwlObjectProperty) l.getChild(i); - if (op.domainIncludes(this)) { - p.addProperty(op); - } - } - return p; +// getTopElement().collectProperties(l); + collectProperties(l); + return new Properties(l); +// Properties p = new Properties(); +// for (int i=0; i<l.getNumChild(); i++) { +// OwlProperty op = (OwlProperty) l.getChild(i); +// if (op.domainIncludes(this)) { +// p.addProperty(op); +// } +// } +// return p; } } aspect Properties { - void ASTNode.collectObjectProperties(List l) { + void ASTNode.collectProperties(List l) { for (int i=0; i<getNumChild(); i++) { - getChild(i).collectObjectProperties(l); + getChild(i).collectProperties(l); } } - void OwlObjectProperty.collectObjectProperties(List l) { + void OwlProperty.collectProperties(List l) { l.add(this); } diff --git a/owl.ast b/owl.ast index e89e5503e249878ea54f3a5fe1e49269feebf52f..4b38bf321ebb9e5934090b5928832482b16e7858 100644 --- a/owl.ast +++ b/owl.ast @@ -25,14 +25,14 @@ OwlDataRange : ComplexElement; OwlDatatypeProperty : ComplexElement; OwlDisjointWith : ComplexElement; OwlEquivalentClass : ComplexElement; -OwlFunctionalProperty : ComplexElement; +OwlFunctionalProperty : OwlProperty; OwlImports : ComplexElement; OwlIntersectionOf : ComplexElement; OwlInverseOf : ComplexElement; OwlMinCardinality : ComplexElement; -OwlObjectProperty : ComplexElement; +OwlObjectProperty : OwlProperty; OwlOneOf : ComplexElement; -OwlOnProperty : ComplexElement; +OwlOnProperty : OwlProperty; OwlSomeValuesFrom : ComplexElement; OwlRestriction : ComplexElement; OwlUnionOf : ComplexElement; @@ -69,3 +69,5 @@ OwlClassDecl : OClass ::= <Id:String> ; OwlClassUse : OClass ::= <Id:String> ; Properties ::= Property:Element*; + +OwlProperty : ComplexElement;