⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rdfschemamodelenumeration.java

📁 好东西啊!你看看就知道了
💻 JAVA
字号:
package edu.stanford.db.rdf.schema;import org.w3c.rdf.model.*;import java.util.*;import org.w3c.rdf.vocabulary.rdf_syntax_19990222.RDF;import org.w3c.rdf.vocabulary.rdf_schema_19990303.RDFS;public class RDFSchemaModelEnumeration implements Enumeration {  /**   * Enumerates all triples (including derived) for a given model and schema   */  Model instances, schema;  Enumeration statements;  Enumeration derived;  Hashtable derivedList;  Statement current;  public RDFSchemaModelEnumeration(Model instances, Model schema) throws ModelException {    this.instances = instances;    this.schema = schema;    this.statements = instances.elements();    derivedList = new Hashtable();    derived = derivedList.elements();    current = null;  }  public boolean hasMoreElements() {    if(current != null || derived.hasMoreElements())      return true;    try {      if(statements.hasMoreElements()) {	fetchNext();	return true;      }    } catch (ModelException any) {}    return false;  }  public Object nextElement() {    if(current != null) {      Statement s = current;      current = null;      return s;    } else if(derived.hasMoreElements()) {      return derived.nextElement();    } else      throw new NoSuchElementException("RDFSchemaModelEnumeration");  }  private void fetchNext() throws ModelException {    Statement s = (Statement)statements.nextElement();    derivedList.clear();    if(RDF.type.equals(s.predicate())) {      // find superclasses      Model superclass = schema.find((Resource)s.object(), RDFS.subClassOf, null);      //                        Model superclass = schema.find(null, RDFS.subClassOf, null);      //                        System.out.println("Superclasses of " + s.object() + ": " + superclass.size() + " of " + schema.size());      if(!superclass.isEmpty()) {        for(Enumeration en = superclass.elements(); en.hasMoreElements();) {          Statement d = instances.getNodeFactory().createStatement(s.subject(), RDF.type, ((Statement)en.nextElement()).object() );          derivedList.put(d, d);        }      }    } else { // check for superproperties      Model superprop = schema.find(s.predicate(), RDFS.subPropertyOf, null);      if(!superprop.isEmpty()) {        for(Enumeration en = superprop.elements(); en.hasMoreElements();) {          Statement d = instances.getNodeFactory().createStatement(s.subject(), (Resource)((Statement)en.nextElement()).object(), s.object() );          derivedList.put(d, d);        }      }    }    derived = derivedList.elements();    current = s;  }}

⌨️ 快捷键说明

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