Commit 72486b04 authored by Anders Nilsson's avatar Anders Nilsson
Browse files

Trying to extract restrictions instead of properties

parent 2337a8e9
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -4,3 +4,4 @@ AST
*.class
semantic.cache
plugins
testontologies/ontologyV06_Jambalaya.properties
+10 −5
Original line number Diff line number Diff line
@@ -17,15 +17,20 @@ aspect DumpClasses {
	pStream.print(getId());
	pStream.print(" : "+getSuperClass().getId());	
	pStream.print(" ::=");
	Properties props = getProperties();
	for (int i=0; i<props.getNumProperty(); i++) {
	Restrictions restrs = getRestrictions();
	for (int i=0; i<restrs.getNumOwlRestriction(); i++) {
	  pStream.print(" "+"restr");
	}
	
// 	Properties props = getProperties();
// 	for (int i=0; i<props.getNumProperty(); i++) {
// 	    pStream.print("<");
	    pStream.print(props.getProperty(i).getId());
// 	    pStream.print(" "+props.getProperty(i).getId());
// 	    pStream.print(":");
// 	    pStream.print(props.getProperty(i).range().type());
// 	    pStream.print(">");
// 	    pStream.print(" ");
	}
// 	}
	pStream.println(";");
    }
}
+24 −0
Original line number Diff line number Diff line
@@ -53,6 +53,30 @@ aspect Types {
    }
}

aspect Restrictions {
  
  Restrictions OwlClassDecl.restrictions;
  
  syn lazy Restrictions OwlClassDecl.getRestrictions() {
    if (restrictions == null) {
      List l = new List();
      collectRestrictions(l);
      restrictions = new Restrictions(l);
    }
    return restrictions;
  }

  void ASTNode.collectRestrictions(List l) {
    for (int i=0; i<getNumChild(); i++) {
      getChild(i).collectRestrictions(l);
    }
  }
  
  void OwlRestriction.collectRestrictions(List l) {
    l.add(this);
  }
}

aspect Properties {
    void ASTNode.collectProperties(List l) {
	for (int i=0; i<getNumChild(); i++) {
+1 −0
Original line number Diff line number Diff line
@@ -69,5 +69,6 @@ OwlClassDecl : OClass ::= <Id:String> ;
OwlClassUse : OClass ::= <Id:String> ;

Properties ::= Property:Element*;
Restrictions ::= OwlRestriction*;

OwlProperty : ComplexElement;