turtleentityrenderer.java

来自「Semantic Web Ontology Editor」· Java 代码 · 共 1,609 行 · 第 1/4 页

JAVA
1,609
字号
						// object property values						Map propertyValues = ind.getObjectPropertyValues(reasoner.getOntologies());			for (Iterator it = propertyValues.keySet().iterator(); it.hasNext();) {				OWLObjectProperty prop = (OWLObjectProperty) it.next();				Set vals = (Set) propertyValues.get(prop);				for (Iterator valIt = vals.iterator(); valIt.hasNext();) {					OWLIndividual oi = (OWLIndividual) valIt.next();					TV.reset();					oi.accept(TV);					print(TV.getIndentString() + encodeHLink(prop.getURI(), shortForms.shortForm(prop.getURI())) + TAB + TV.result() + ";");					if (valIt.hasNext()) {						println();					}				}				if (it.hasNext())					println();			}						if (propertyValues.size() != 0)				println();						// data property values						Map dataValues = ind.getDataPropertyValues(reasoner.getOntologies());			for (Iterator it = dataValues.keySet().iterator(); it.hasNext();) {				OWLDataProperty prop = (OWLDataProperty) it.next();				Set vals = (Set) dataValues.get(prop);				for (Iterator valIt = vals.iterator(); valIt.hasNext();) {					OWLDataValue dtv = (OWLDataValue) valIt.next();					TV.reset();					dtv.accept(TV);					print(TV.getIndentString() + encodeHLink(prop.getURI(), shortForms.shortForm(prop.getURI())) + TAB + TV.result() + ";");					//System.out.println("Datatype Prop:" + prop.getURI().toString());					if (valIt.hasNext()) {						println();					}				}				if (it.hasNext())					println();			}						TV.indentLevel++;		}		catch (Exception ex)		{ ex.printStackTrace(); }	} 	protected void renderObjectProperty(OWLObjectProperty prop) throws OWLException {		try{			TurtleVisitor TV =  (TurtleVisitor)visitor;						// rendering type			ShortFormProvider shortForms = null;			if (myModel.getShowQNames()) shortForms = this.myQNameProvider;			else shortForms = new TurtleShortFormProvider();			String classQName = shortForms.shortForm(prop.getURI());			URI typeURI = new URI(OWL_OBJECTPROPERTY);						// print the class and its type			println(encodeHLink(prop.getURI(), classQName) + TAB + 					encodeHLink(new URI(RDF_TYPE_URI), "a") + SPACE +					encodeHLink(typeURI, myQNameProvider.shortForm(typeURI)) + ";");			TV.indentLevel ++;					// print out ANNOTATIONS					if(!prop.getAnnotations(reasoner.getOntology()).isEmpty()) {			renderAnnotations(prop);			println(";");		}				// is TRANSITIVE?				if (prop.isTransitive(reasoner.getOntologies())) {			typeURI = new URI(OWL_TRANSITIVEPROP);			print(TV.getIndentString() + encodeHLink(new URI(RDF_TYPE_URI), "a") + TAB +					encodeHLink(typeURI, myQNameProvider.shortForm(typeURI)) + ";");		}				// is FUNCTIONAL?				if (prop.isFunctional(reasoner.getOntologies())) {			typeURI = new URI(OWL_FUNCTIONALPROP);			println(TV.getIndentString() + encodeHLink(new URI(RDF_TYPE_URI), "a") + TAB +					encodeHLink(typeURI, myQNameProvider.shortForm(typeURI)) + ";");		}				// is INVERSE FUNCTIONAL?				if (prop.isInverseFunctional(reasoner.getOntologies())) {			typeURI = new URI(OWL_INVERSEFUNCTIONALPROP);			println(TV.getIndentString() + encodeHLink(new URI(RDF_TYPE_URI), "a") + TAB +					encodeHLink(typeURI, myQNameProvider.shortForm(typeURI)) + ";");		}				// is SYMMETRIC?				if (prop.isSymmetric(reasoner.getOntologies())) {			typeURI = new URI(OWL_SYMMETRICPROP);			println(TV.getIndentString() + encodeHLink(new URI(RDF_TYPE_URI), "a") + TAB +					encodeHLink(typeURI, myQNameProvider.shortForm(typeURI)) + ";");		}				// EQUIVALENT properties				for (Iterator it = reasoner.equivalentPropertiesOf(prop).iterator(); it.hasNext();) {			URI uri = new URI(OWL_EQUIVALENTPROP);			print(TV.getIndentString() + encodeHLink(uri, myQNameProvider.shortForm(uri)) + TAB);			Object equi = (Object) it.next();			OWLObjectProperty op = (OWLObjectProperty)equi;			TV.reset();			op.accept(TV);			println( TV.result() + ";");		}				// INVERSE				for (Iterator it = prop.getInverses(reasoner.getOntologies()).iterator(); it.hasNext();) 		{			URI uri = new URI(OWL_INVERSEOF);			print(TV.getIndentString() + encodeHLink(uri, myQNameProvider.shortForm(uri)) + TAB);			OWLObjectProperty inv = (OWLObjectProperty) it.next();			TV.reset();			inv.accept(TV);			println( TV.result() + ";");		}		// DOMAIN				for (Iterator it = reasoner.domainsOf(prop).iterator(); it.hasNext();) {			URI uri = new URI(RDFS_DOMAIN);			print(TV.getIndentString() + encodeHLink(uri, myQNameProvider.shortForm(uri)) + TAB);			OWLDescription dom = (OWLDescription) it.next();			TV.reset();			dom.accept(TV);			println( TV.result() + ";");		}				// RANGE				for (Iterator it = reasoner.rangesOf(prop).iterator(); it.hasNext();) {			URI uri = new URI(RDFS_RANGE);			print(TV.getIndentString() + encodeHLink(uri, myQNameProvider.shortForm(uri)) + TAB);			OWLDescription ran = (OWLDescription) it.next();			TV.reset();			ran.accept(TV);			println( TV.result() + ";");		}				// print out superclasses (SUBCLASSOF)				for (Iterator it = reasoner.superPropertiesOf(prop).iterator(); it.hasNext();) {			URI uri = new URI(RDFS_SUBPROPERTYOF);			print(TV.getIndentString() + encodeHLink(uri, myQNameProvider.shortForm(uri)) + TAB);			Object Obj = it.next();			if (Obj instanceof OWLObjectProperty)			{				//System.out.println(Obj.getClass().toString() );				OWLObjectProperty sup = (OWLObjectProperty)Obj;				TV.reset();				sup.accept(TV);				println( TV.result() + ";");			}			else // could be a set of ObjProperties ... very strange			{				Set set = (Set)Obj;				for (Iterator i = set.iterator(); i.hasNext();)				{					OWLObjectProperty sup = (OWLObjectProperty)i.next();					TV.reset();					sup.accept(TV);					println( TV.result() + ";");				}			}		}				TV.indentLevel ++;		}		catch (Exception ex)		{ ex.printStackTrace(); }	}	protected void println() {		pw.println(BREAK);			}		protected void println(String str){		pw.print(str + BREAK);	}				public String getContentType() {		return TURTLE_CONTENT_TYPE;	}	public String getName() {		return TURTLE_NAME;	}		private String getOtherStatements(OWLEntity ent)	{		String result = BREAK;		ShortFormProvider shortForms = null;		if (myModel.getShowQNames()) shortForms = this.myQNameProvider;		else shortForms = new TurtleShortFormProvider();				//System.out.println(ent.getClass().toString());		try		{			OWLClass owlNothing = reasoner.getOntology().getOWLDataFactory().getOWLNothing();			TurtleVisitor TV = (TurtleVisitor)visitor;				if (ent instanceof OWLClass) // here we render all subclasses of this OWLClass			{				OWLClass clazz = (OWLClass)ent;				Set subs = reasoner.subClassesOf(clazz);								// SUPERCLASSOF (separate triple statements)				// here we only print if the set of subclass is not { owlNothing }				if ( (subs.size() >= 1 && !((Set)subs.iterator().next()).contains(owlNothing)) )				{ 												URI uri = new URI(RDFS_SUBCLASSOF);					for (Iterator it = subs.iterator(); it.hasNext(); )					{						Object obj = (Object)it.next();										// if there is more than one element for this line						// we only print the first one. rest are either						// equivalent classes (or properties) 						if(obj instanceof Collection)							obj = ((Collection)obj).iterator().next();						OWLDescription desc = (OWLDescription)obj;						TV.reset();						desc.accept(TV);						result = result + TV.getIndentString() + TV.result() + TAB + encodeHLink(uri, myQNameProvider.shortForm(uri) ) + TAB +						encodeHLink(clazz.getURI(), shortForms.shortForm(clazz.getURI())) + PERIOD + BREAK;					}					result = result + BREAK;								}				// as DOMAIN of properties								Set propDomains = getPropertiesWithDomain(clazz, showInherited); // whether to show inherited or not				URI uri = new URI(RDFS_DOMAIN);				for (Iterator it = propDomains.iterator(); it.hasNext(); )				{					Object obj = it.next();					OWLProperty desc = (OWLProperty)obj;					TV.reset();					desc.accept(TV);					result = result + TV.getIndentString() + TV.result() + TAB + encodeHLink(uri, myQNameProvider.shortForm(uri) ) + TAB + 								encodeHLink(clazz.getURI(), shortForms.shortForm(clazz.getURI()) )+ PERIOD + BREAK;				}								if (propDomains.size() > 0)					result = result + BREAK;								// as RANGE of properties								Set propRanges = getPropertiesWithRange(clazz, showInherited); // whether to show inherited or not				uri = new URI(RDFS_RANGE);				for (Iterator it = propRanges.iterator(); it.hasNext(); )				{					Object obj = it.next();					OWLProperty desc = (OWLProperty)obj;					TV.reset();					desc.accept(TV);					result = result + TV.getIndentString() + TV.result() + TAB + encodeHLink(uri, myQNameProvider.shortForm(uri) ) + TAB + 								encodeHLink(clazz.getURI(), shortForms.shortForm(clazz.getURI()) )+ PERIOD + BREAK;				}								if (propRanges.size() > 0)					result = result + BREAK;								// INSTANCEs of this class								Set instances = new HashSet();				if (showInherited)					instances = reasoner.allInstancesOf(clazz);				else 					instances = reasoner.instancesOf(clazz);				for (Iterator it = instances.iterator(); it.hasNext(); )				{					Object obj = it.next();					OWLIndividual ind = (OWLIndividual)obj;					result = result +TV.getIndentString() + encodeHLink(ind.getURI(), shortForms.shortForm(ind.getURI()) ) +								TAB + encodeHLink(new URI(RDF_TYPE_URI), "a") + TAB + 								encodeHLink(clazz.getURI(), shortForms.shortForm(clazz.getURI()) )+ PERIOD + BREAK;				}							}			else if (ent instanceof OWLProperty) // OWLDataProperty + OWLObjectProperty			{				OWLProperty prop = (OWLProperty) ent;				for (Iterator it = reasoner.subPropertiesOf(prop).iterator(); it.hasNext();) 				{					URI uri = new URI(RDFS_SUBPROPERTYOF);					Object obj = it.next();					// if there is more than one element for this line					// we only print the first one. rest are either					// equivalent classes (or properties) 					if(obj instanceof Collection)						obj = ((Collection)obj).iterator().next();					OWLProperty dom = (OWLProperty)obj;					TV.reset();					dom.accept(TV);					result = result + TV.result() + TAB + encodeHLink(uri, myQNameProvider.shortForm(uri)) + 								TAB + encodeHLink(prop.getURI(), shortForms.shortForm(prop.getURI())) + PERIOD  + BREAK; 				}			}					}		catch (Exception ex)		{ ex.printStackTrace(); }				return result;	}			/*	 *  SwoopRenderer method	 * 	 */	public Component getDisplayComponent( SwoopDisplayPanel panel )	{				if (!(panel instanceof TermsDisplay ))			throw new IllegalArgumentException();				JEditorPane editorPane = BaseEntityRenderer.getEditorPane( this.getContentType(), (TermsDisplay)panel );				if (!editorEnabled) 		{ return editorPane; }		else 		{			editorPane.setEditable(true);						// adding to UI listeners of TermsDisplay			editorPane.getDocument().addDocumentListener((TermsDisplay)panel);			editorPane.addMouseListener((TermsDisplay)panel);						editorPane.addKeyListener((TermsDisplay)panel);		}		return editorPane;	}			  private String repairForEndOfStatement(String toBeRendered){  	toBeRendered = toBeRendered.trim();  	while (toBeRendered.endsWith(BREAK))  		toBeRendered = toBeRendered.substring(0, toBeRendered.length() - BREAK.length());  	while (toBeRendered.endsWith(SPACE)) 		toBeRendered = toBeRendered.substring(0, toBeRendered.length() - SPACE.length());  	while (toBeRendered.endsWith(TAB)) 		toBeRendered = toBeRendered.substring(0, toBeRendered.length() - TAB.length());  	    if (toBeRendered.endsWith(";"))    	toBeRendered = toBeRendered.substring(0, toBeRendered.length() - 1) + PERIOD;    else    {    	//System.out.println(toBeRendered.substring(toBeRendered.length() - 5));    	toBeRendered = toBeRendered + PERIOD;    }  	return toBeRendered;  }    private String encodeHLink(URI uri, String name)  {  	if (!editorEnabled) return "<a href="+escape(uri)+">"+escape(name)+"</a>";  	else return name;  }  private String encodeHLink(String uri_string, String name) throws URISyntaxException  {  	URI uri = new URI(uri_string);  	if (!editorEnabled) return "<a href="+escape(uri)+">"+escape(name)+"</a>";  	else return escape(name);  }  /* Sanity check.  This way we know if message below is printed,    * we are using the wrong ShortFormProvider   */  public String shortForm(URI uri)  {  return "WRONG SHORTFORM PROVIDER!!!";  }/* (non-Javadoc) * @see org.mindswap.swoop.renderer.BaseEntityRenderer#renderForeignEntity(org.semanticweb.owl.model.OWLEntity) */protected void renderForeignEntity(OWLEntity ent) throws OWLException {	// TODO Auto-generated method stub	}/* (non-Javadoc) * @see org.mindswap.swoop.renderer.SwoopEditableRenderer#setEditorEnabled(boolean) */public void setEditorEnabled(boolean mode) { editorEnabled = mode; }/* (non-Javadoc) * @see org.mindswap.swoop.renderer.SwoopEditableRenderer#isEditableText() */public boolean isEditableText() { return editorEnabled; }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?