以文本方式查看主题

-  计算机科学论坛  (http://bbs.xml.org.cn/index.asp)
--  『 Semantic Web(语义Web)/描述逻辑/本体 』  (http://bbs.xml.org.cn/list.asp?boardid=2)
----  请教Jena中怎么建立实例(已经将本体倒入了数据库)  (http://bbs.xml.org.cn/dispbbs.asp?boardid=2&rootid=&id=39944)


--  作者:NewlearnYY
--  发布时间:11/12/2006 6:03:00 PM

--  请教Jena中怎么建立实例(已经将本体倒入了数据库)
请教各位大虾:
我已经将在protege中建立好的本体倒入了MySql数据库中,同时看到了七张表,都是以Jena开头的
我现在有几个疑问:
第一:这几张表表示什么意思?
第二:为什么表里面没有数据?(应该有如类的信息吧)
第三:我如何在Jena里建立实例呀?
谢谢了
--  作者:jpz6311whu
--  发布时间:11/13/2006 8:47:00 AM

--  
protege中建立好的本体倒入了MySql数据库中

--
你是怎么导入到数据库中的?
把程序贴出来看看


--  作者:NewlearnYY
--  发布时间:11/13/2006 9:46:00 AM

--  
public class PersistentOntology {
 public void loadDB(ModelMaker maker, String source)  {
  
  
  Model base = maker.createModel(source, false);
  OntModel m = ModelFactory.createOntologyModel(getModelSpec(maker), base);
  m.read(source);
 }
 
 public void listClasses(ModelMaker maker, String modelID)  {
  Model base = maker.createModel(modelID, false);
  OntModel m = ModelFactory.createOntologyModel(getModelSpec(maker), base);
  for(Iterator i = m.listClasses(); i.hasNext(); )  {
   OntClass c = (OntClass)i.next();
   System.out.println("Class " + c.getURI());
  }
 }
 
 public ModelMaker getRDBMaker(String dbURL, String dbUser, String dbPw, String dbType, boolean cleanDB)  {
  try  {
   IDBConnection conn = new DBConnection(dbURL, dbUser, dbPw, dbType);
   if(cleanDB) {
    conn.cleanDB();
   }
   return ModelFactory.createModelRDBMaker(conn);
  }
  catch (Exception e)  {
   e.printStackTrace();
   System.exit(1);
  }
  
  return null;
 }
 
 public OntModelSpec getModelSpec(ModelMaker maker)  {
  OntModelSpec spec = new OntModelSpec(OntModelSpec.OWL_MEM);
  spec.setImportModelMaker(maker);
  return spec;
 }

}


public class DatabaseClass {
 
 public static final String ONT1 = "http://www.owl-ontologies.com/travel.owl";
 
 public static final String DB_URL = "jdbc:mysql://localhost/ontologydb";
 public static final String DB_USER = "root";
 public static final String DB_PASSWD = "123456";
 public static final String DB = "MySQL";
 public static final String DB_DRIVER = "com.mysql.jdbc.Driver";
 
 private static String s_dbURL = DB_URL;
 private static String s_dbUser = DB_USER;
 private static String s_dbPw = DB_PASSWD;
 private static String s_dbType = DB;
 private static String s_dbDriver = DB_DRIVER;
 
 private static boolean s_reload = false;
 
 private static String s_source;
 
 

 /**
  * @param args
  */
 public static void main(String[] args) {
  processArgs(args);
  
  if(s_source == null)  {
   s_source = getDefaultSource();
  }

  PersistentOntology po = new PersistentOntology();
  
  try{
   Class.forName(s_dbDriver);
  }
  catch(Exception e)  {
   System.err.println("Failed to load the driver for the database: " + e.getMessage() );
   System.err.println( "Have you got the CLASSPATH set correctly?" );
  }

  if(s_reload) {
   ModelMaker maker = po.getRDBMaker(s_dbURL, s_dbUser, s_dbPw, s_dbType, true);
   po.loadDB(maker, s_source);
  }

  ModelMaker maker = po.getRDBMaker(s_dbURL, s_dbUser, s_dbPw, s_dbType, false);
  po.listClasses(maker, s_source);
 }
  
   private static void processArgs(String[] args) {
          int i = 0;
          while (i < args.length) {
              String arg = args[i++];

              if      (arg.equals( "--dbUser" ))   {s_dbURL = args[i++];}
              else if (arg.equals( "--dbURL" ))    {s_dbURL = args[i++];}
              else if (arg.equals( "--dbPasswd" )) {s_dbPw = args[i++];}
              else if (arg.equals( "--dbType" ))   {s_dbType = args[i++];}
              else if (arg.equals( "--reload" ))   {s_reload = true;}
              else if (arg.equals( "--dbDriver" )) {s_dbDriver = args[i++];}
              else {
                  s_source = arg;


             }
         }
     }
  
  private static String getDefaultSource()  {
   OntDocumentManager.getInstance().addAltEntry(ONT1, "http://www.owl-ontologies.com/travel.owl");
   return ONT1;
  }

  // TODO Auto-generated method stub

 }

谢谢楼上的朋友!我是参照Jena文档中的例子写的。


--  作者:NewlearnYY
--  发布时间:11/13/2006 9:48:00 AM

--  
public class PersistentOntology {
 public void loadDB(ModelMaker maker, String source)  {
  
  
  Model base = maker.createModel(source, false);
  OntModel m = ModelFactory.createOntologyModel(getModelSpec(maker), base);
  m.read(source);
 }
 
 public void listClasses(ModelMaker maker, String modelID)  {
  Model base = maker.createModel(modelID, false);
  OntModel m = ModelFactory.createOntologyModel(getModelSpec(maker), base);
  for(Iterator i = m.listClasses(); i.hasNext(); )  {
   OntClass c = (OntClass)i.next();
   System.out.println("Class " + c.getURI());
  }
 }
 
 public ModelMaker getRDBMaker(String dbURL, String dbUser, String dbPw, String dbType, boolean cleanDB)  {
  try  {
   IDBConnection conn = new DBConnection(dbURL, dbUser, dbPw, dbType);
   if(cleanDB) {
    conn.cleanDB();
   }
   return ModelFactory.createModelRDBMaker(conn);
  }
  catch (Exception e)  {
   e.printStackTrace();
   System.exit(1);
  }
  
  return null;
 }
 
 public OntModelSpec getModelSpec(ModelMaker maker)  {
  OntModelSpec spec = new OntModelSpec(OntModelSpec.OWL_MEM);
  spec.setImportModelMaker(maker);
  return spec;
 }

}


public class DatabaseClass {
 
 public static final String ONT1 = "http://www.owl-ontologies.com/travel.owl";
 
 public static final String DB_URL = "jdbc:mysql://localhost/ontologydb";
 public static final String DB_USER = "root";
 public static final String DB_PASSWD = "123456";
 public static final String DB = "MySQL";
 public static final String DB_DRIVER = "com.mysql.jdbc.Driver";
 
 private static String s_dbURL = DB_URL;
 private static String s_dbUser = DB_USER;
 private static String s_dbPw = DB_PASSWD;
 private static String s_dbType = DB;
 private static String s_dbDriver = DB_DRIVER;
 
 private static boolean s_reload = false;
 
 private static String s_source;
 
 

 /**
  * @param args
  */
 public static void main(String[] args) {
  processArgs(args);
  
  if(s_source == null)  {
   s_source = getDefaultSource();
  }

  PersistentOntology po = new PersistentOntology();
  
  try{
   Class.forName(s_dbDriver);
  }
  catch(Exception e)  {
   System.err.println("Failed to load the driver for the database: " + e.getMessage() );
   System.err.println( "Have you got the CLASSPATH set correctly?" );
  }

  if(s_reload) {
   ModelMaker maker = po.getRDBMaker(s_dbURL, s_dbUser, s_dbPw, s_dbType, true);
   po.loadDB(maker, s_source);
  }

  ModelMaker maker = po.getRDBMaker(s_dbURL, s_dbUser, s_dbPw, s_dbType, false);
  po.listClasses(maker, s_source);
 }
  
   private static void processArgs(String[] args) {
          int i = 0;
          while (i < args.length) {
              String arg = args[i++];

              if      (arg.equals( "--dbUser" ))   {s_dbURL = args[i++];}
              else if (arg.equals( "--dbURL" ))    {s_dbURL = args[i++];}
              else if (arg.equals( "--dbPasswd" )) {s_dbPw = args[i++];}
              else if (arg.equals( "--dbType" ))   {s_dbType = args[i++];}
              else if (arg.equals( "--reload" ))   {s_reload = true;}
              else if (arg.equals( "--dbDriver" )) {s_dbDriver = args[i++];}
              else {
                  s_source = arg;


             }
         }
     }
  
  private static String getDefaultSource()  {
   OntDocumentManager.getInstance().addAltEntry(ONT1, "http://www.owl-ontologies.com/travel.owl");
   return ONT1;
  }

  // TODO Auto-generated method stub

 }

谢谢楼上的朋友!我是参照Jena文档中的例子写的。


--  作者:jpz6311whu
--  发布时间:11/13/2006 10:22:00 AM

--  
po.listClasses(maker, s_source);

这个运行结果怎么样?类都列出来了吗?


--  作者:NewlearnYY
--  发布时间:11/13/2006 10:40:00 AM

--  
就是没有呀,在那几个表里面什么数据都没有,觉得有点奇怪了!
再次谢谢你!
--  作者:jpz6311whu
--  发布时间:11/13/2006 11:35:00 AM

--  
OntDocumentManager.getInstance().addAltEntry(ONT1, "http://www.owl-ontologies.com/travel.owl");

改成本地地址看看。


--  作者:NewlearnYY
--  发布时间:11/13/2006 2:58:00 PM

--  
谢谢你的热心帮助!
还是不行,我还想请教一个问题,怎么在Jena中建立实例呀?
--  作者:jpz6311whu
--  发布时间:11/13/2006 4:37:00 PM

--  
找不到网页
您要查看的网页可能已被删除、名称已被更改,或者暂时不可用。

--------------------------------------------------------------------------------

请尝试以下操作:

如果您已经在地址栏中输入该网页的地址,请确认其拼写正确。

打开 www.owl-ontologies.com  主页,然后查找指向您感兴趣信息的链接。
单击后退按钮,尝试其他链接。
单击搜索,寻找 Internet 上的信息。

HTTP 404 - 未找到文件
Internet Explorer

---------
http://www.owl-ontologies.com/travel.owl
这个本体现在网上没有啊,你有没有映射到本地文件啊?


--  作者:NewlearnYY
--  发布时间:11/14/2006 3:50:00 PM

--  
呵呵,再次谢谢你的帮助!
那个本体我是从网上下的,我已经下载到了本地,后来也改了本地地址。
http://www.owl-ontologies.com/travel.owl,这是它的命名空间。
后来我想干脆直接赋初值给s_source(取得本地地址,如file:F:/travel.owl),后面的那个私有方法也就没用了,程序如下:但是还是看不到本体的任何内容。
import com.hp.hpl.jena.ontology.*;
import com.hp.hpl.jena.rdf.model.ModelMaker;
import java.util.*;

public class DatabaseClass {
 
 
 
 public static final String DB_URL = "jdbc:mysql://localhost/ontologydb";
 public static final String DB_USER = "root";
 public static final String DB_PASSWD = "123456";
 public static final String DB = "MySQL";
 public static final String DB_DRIVER = "com.mysql.jdbc.Driver";
 
 
 private static String s_dbURL = DB_URL;
 private static String s_dbUser = DB_USER;
 private static String s_dbPw = DB_PASSWD;
 private static String s_dbType = DB;
 private static String s_dbDriver = DB_DRIVER;
 
 private static boolean s_reload = false;
 
 
 private static String s_source = "file:F:/travel.owl";
 
 

 /**
  * @param args
  */
 public static void main(String[] args) {
  processArgs(args);
  
  
  PersistentOntology po = new PersistentOntology();
  
  
  try{
   Class.forName(s_dbDriver);
  }
  catch(Exception e)  {
   System.err.println("Failed to load the driver for the database: " + e.getMessage() );
   System.err.println( "Have you got the CLASSPATH set correctly?" );
  }
  
    if(s_reload) {
   
   ModelMaker maker = po.getRDBMaker(s_dbURL, s_dbUser, s_dbPw, s_dbType, true);
   
   po.loadDB(maker, s_source);
  }
  
  
  ModelMaker maker = po.getRDBMaker(s_dbURL, s_dbUser, s_dbPw, s_dbType, false);
  po.listClasses(maker, s_source);
 }
  
   private static void processArgs(String[] args) {
          int i = 0;
          while (i < args.length) {
              String arg = args[i++];

              if      (arg.equals( "--dbUser" ))   {s_dbURL = args[i++];}
              else if (arg.equals( "--dbURL" ))    {s_dbURL = args[i++];}
              else if (arg.equals( "--dbPasswd" )) {s_dbPw = args[i++];}
              else if (arg.equals( "--dbType" ))   {s_dbType = args[i++];}
              else if (arg.equals( "--reload" ))   {s_reload = true;}
              else if (arg.equals( "--dbDriver" )) {s_dbDriver = args[i++];}
              else {
                  
                  s_source = arg;


             }
         }
     }
  
  
  // TODO Auto-generated method stub

 }



--  作者:jpz6311whu
--  发布时间:11/14/2006 4:25:00 PM

--  
能把你的travel.owl传上来吗?
没有本体文件,我不好帮你调程序啊
--  作者:NewlearnYY
--  发布时间:11/14/2006 8:17:00 PM

--  
太谢谢你了!呵呵!
你是说travel.owl文件吧,不好意思,因为我看不到你给我的回帖,呵呵,很奇怪,只在首页能看到你的最后跟帖,但是看不到详细内容,我猜的。

<?xml version="1.0"?>
<rdf:RDF
    xmlns="http://www.owl-ontologies.com/travel.owl#"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
    xmlns:owl="http://www.w3.org/2002/07/owl#"
    xmlns:daml="http://www.daml.org/2001/03/daml+oil#"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
  xml:base="http://www.owl-ontologies.com/travel.owl">
  <owl:Ontology rdf:about="">
    <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
    >An example ontology for tutorial purposes.</rdfs:comment>
    <owl:versionInfo rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
    >1.0 by Holger Knublauch (holger@smi.stanford.edu)</owl:versionInfo>
  </owl:Ontology>
  <owl:Class rdf:ID="Activity"/>
  <owl:Class rdf:ID="Museums">
    <rdfs:subClassOf>
      <owl:Class rdf:ID="Sightseeing"/>
    </rdfs:subClassOf>
  </owl:Class>
  <owl:Class rdf:ID="BudgetHotelDestination">
    <owl:equivalentClass>
      <owl:Class>
        <owl:intersectionOf rdf:parseType="Collection">
          <owl:Class rdf:ID="Destination"/>
          <owl:Restriction>
            <owl:onProperty>
              <owl:ObjectProperty rdf:ID="hasAccommodation"/>
            </owl:onProperty>
            <owl:someValuesFrom>
              <owl:Class>
                <owl:intersectionOf rdf:parseType="Collection">
                  <owl:Class rdf:ID="BudgetAccommodation"/>
                  <owl:Class rdf:ID="Hotel"/>
                </owl:intersectionOf>
              </owl:Class>
            </owl:someValuesFrom>
          </owl:Restriction>
        </owl:intersectionOf>
      </owl:Class>
    </owl:equivalentClass>
    <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
    >A destination with a hotel that is also a budget accommodation.</rdfs:comment>
  </owl:Class>
  <owl:Class rdf:ID="Capital">
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty>
          <owl:ObjectProperty rdf:ID="hasActivity"/>
        </owl:onProperty>
        <owl:someValuesFrom rdf:resource="#Museums"/>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Class rdf:ID="City"/>
    </rdfs:subClassOf>
  </owl:Class>
  <owl:Class rdf:ID="Beach">
    <rdfs:subClassOf rdf:resource="#Destination"/>
  </owl:Class>
  <owl:Class rdf:ID="Sunbathing">
    <rdfs:subClassOf>
      <owl:Class rdf:ID="Relaxation"/>
    </rdfs:subClassOf>
  </owl:Class>
  <owl:Class rdf:ID="NationalPark">
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty>
          <owl:ObjectProperty rdf:about="#hasAccommodation"/>
        </owl:onProperty>
        <owl:someValuesFrom>
          <owl:Class rdf:ID="Campground"/>
        </owl:someValuesFrom>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Class rdf:ID="RuralArea"/>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty>
          <owl:ObjectProperty rdf:about="#hasActivity"/>
        </owl:onProperty>
        <owl:someValuesFrom>
          <owl:Class rdf:ID="Hiking"/>
        </owl:someValuesFrom>
      </owl:Restriction>
    </rdfs:subClassOf>
  </owl:Class>
  <owl:Class rdf:ID="BackpackersDestination">
    <owl:equivalentClass>
      <owl:Class>
        <owl:intersectionOf rdf:parseType="Collection">
          <owl:Class rdf:about="#Destination"/>
          <owl:Restriction>
            <owl:onProperty>
              <owl:ObjectProperty rdf:about="#hasAccommodation"/>
            </owl:onProperty>
            <owl:someValuesFrom>
              <owl:Class rdf:about="#BudgetAccommodation"/>
            </owl:someValuesFrom>
          </owl:Restriction>
          <owl:Restriction>
            <owl:someValuesFrom>
              <owl:Class>
                <owl:unionOf rdf:parseType="Collection">
                  <owl:Class rdf:ID="Sports"/>
                  <owl:Class rdf:ID="Adventure"/>
                </owl:unionOf>
              </owl:Class>
            </owl:someValuesFrom>
            <owl:onProperty>
              <owl:ObjectProperty rdf:about="#hasActivity"/>
            </owl:onProperty>
          </owl:Restriction>
        </owl:intersectionOf>
      </owl:Class>
    </owl:equivalentClass>
    <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
    >A destination that provides budget accommodation and offers sport or adventure activities.</rdfs:comment>
  </owl:Class>
  <owl:Class rdf:about="#Sightseeing">
    <owl:disjointWith>
      <owl:Class rdf:about="#Relaxation"/>
    </owl:disjointWith>
    <owl:disjointWith>
      <owl:Class rdf:about="#Sports"/>
    </owl:disjointWith>
    <rdfs:subClassOf rdf:resource="#Activity"/>
    <owl:disjointWith>
      <owl:Class rdf:about="#Adventure"/>
    </owl:disjointWith>
  </owl:Class>
  <owl:Class rdf:ID="RetireeDestination">
    <owl:equivalentClass>
      <owl:Class>
        <owl:intersectionOf rdf:parseType="Collection">
          <owl:Class rdf:about="#Destination"/>
          <owl:Restriction>
            <owl:someValuesFrom>
              <owl:Restriction>
                <owl:hasValue>
                  <AccommodationRating rdf:ID="ThreeStarRating">
                    <owl:differentFrom>
                      <AccommodationRating rdf:ID="TwoStarRating">
                        <owl:differentFrom>
                          <AccommodationRating rdf:ID="OneStarRating">
                            <owl:differentFrom rdf:resource="#ThreeStarRating"/>
                            <owl:differentFrom rdf:resource="#TwoStarRating"/>
                          </AccommodationRating>
                        </owl:differentFrom>
                        <owl:differentFrom rdf:resource="#ThreeStarRating"/>
                      </AccommodationRating>
                    </owl:differentFrom>
                    <owl:differentFrom rdf:resource="#OneStarRating"/>
                  </AccommodationRating>
                </owl:hasValue>
                <owl:onProperty>
                  <owl:ObjectProperty rdf:ID="hasRating"/>
                </owl:onProperty>
              </owl:Restriction>
            </owl:someValuesFrom>
            <owl:onProperty>
              <owl:ObjectProperty rdf:about="#hasAccommodation"/>
            </owl:onProperty>
          </owl:Restriction>
          <owl:Restriction>
            <owl:onProperty>
              <owl:ObjectProperty rdf:about="#hasActivity"/>
            </owl:onProperty>
            <owl:someValuesFrom rdf:resource="#Sightseeing"/>
          </owl:Restriction>
        </owl:intersectionOf>
      </owl:Class>
    </owl:equivalentClass>
    <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
    >A destination with at least one three star accommodation and sightseeing opportunities.</rdfs:comment>
  </owl:Class>
  <owl:Class rdf:ID="AccommodationRating">
    <owl:equivalentClass>
      <owl:Class>
        <owl:oneOf rdf:parseType="Collection">
          <AccommodationRating rdf:about="#OneStarRating"/>
          <AccommodationRating rdf:about="#TwoStarRating"/>
          <AccommodationRating rdf:about="#ThreeStarRating"/>
        </owl:oneOf>
      </owl:Class>
    </owl:equivalentClass>
    <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
    >Consists of exactly three individuals.</rdfs:comment>
  </owl:Class>
  <owl:Class rdf:ID="UrbanArea">
    <rdfs:subClassOf rdf:resource="#Destination"/>
    <owl:disjointWith>
      <owl:Class rdf:about="#RuralArea"/>
    </owl:disjointWith>
  </owl:Class>
  <owl:Class rdf:about="#Campground">
    <owl:disjointWith>
      <owl:Class rdf:ID="BedAndBreakfast"/>
    </owl:disjointWith>
    <rdfs:subClassOf>
      <owl:Class rdf:ID="Accommodation"/>
    </rdfs:subClassOf>
    <owl:disjointWith>
      <owl:Class rdf:about="#Hotel"/>
    </owl:disjointWith>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty>
          <owl:ObjectProperty rdf:about="#hasRating"/>
        </owl:onProperty>
        <owl:hasValue rdf:resource="#OneStarRating"/>
      </owl:Restriction>
    </rdfs:subClassOf>
  </owl:Class>
  <owl:Class rdf:about="#City">
    <rdfs:subClassOf rdf:resource="#UrbanArea"/>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty>
          <owl:ObjectProperty rdf:about="#hasAccommodation"/>
        </owl:onProperty>
        <owl:someValuesFrom>
          <owl:Class rdf:ID="LuxuryHotel"/>
        </owl:someValuesFrom>
      </owl:Restriction>
    </rdfs:subClassOf>
  </owl:Class>
  <owl:Class rdf:ID="Safari">
    <rdfs:subClassOf rdf:resource="#Sightseeing"/>
    <rdfs:subClassOf>
      <owl:Class rdf:about="#Adventure"/>
    </rdfs:subClassOf>
  </owl:Class>
  <owl:Class rdf:ID="QuietDestination">
    <owl:equivalentClass>
      <owl:Class>
        <owl:intersectionOf rdf:parseType="Collection">
          <owl:Class rdf:about="#Destination"/>
          <owl:Class>
            <owl:complementOf>
              <owl:Class rdf:ID="FamilyDestination"/>
            </owl:complementOf>
          </owl:Class>
        </owl:intersectionOf>
      </owl:Class>
    </owl:equivalentClass>
    <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
    >A destination that is not frequented by noisy families.</rdfs:comment>
  </owl:Class>
  <owl:Class rdf:about="#Hiking">
    <rdfs:subClassOf>
      <owl:Class rdf:about="#Sports"/>
    </rdfs:subClassOf>
  </owl:Class>
  <owl:Class rdf:about="#Relaxation">
    <owl:disjointWith rdf:resource="#Sightseeing"/>
    <owl:disjointWith>
      <owl:Class rdf:about="#Adventure"/>
    </owl:disjointWith>
    <owl:disjointWith>
      <owl:Class rdf:about="#Sports"/>
    </owl:disjointWith>
    <rdfs:subClassOf rdf:resource="#Activity"/>
  </owl:Class>
  <owl:Class rdf:about="#FamilyDestination">
    <owl:equivalentClass>
      <owl:Class>
        <owl:intersectionOf rdf:parseType="Collection">
          <owl:Class rdf:about="#Destination"/>
          <owl:Restriction>
            <owl:onProperty>
              <owl:ObjectProperty rdf:about="#hasAccommodation"/>
            </owl:onProperty>
            <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#int"
            >1</owl:minCardinality>
          </owl:Restriction>
          <owl:Restriction>
            <owl:onProperty>
              <owl:ObjectProperty rdf:about="#hasActivity"/>
            </owl:onProperty>
            <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#int"
            >2</owl:minCardinality>
          </owl:Restriction>
        </owl:intersectionOf>
      </owl:Class>
    </owl:equivalentClass>
    <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
    >A destination with at least one accommodation and at least 2 activities.</rdfs:comment>
  </owl:Class>
  <owl:Class rdf:about="#Adventure">
    <owl:disjointWith>
      <owl:Class rdf:about="#Sports"/>
    </owl:disjointWith>
    <owl:disjointWith rdf:resource="#Sightseeing"/>
    <owl:disjointWith rdf:resource="#Relaxation"/>
    <rdfs:subClassOf rdf:resource="#Activity"/>
  </owl:Class>
  <owl:Class rdf:ID="Yoga">
    <rdfs:subClassOf rdf:resource="#Relaxation"/>
  </owl:Class>
  <owl:Class rdf:about="#Sports">
    <rdfs:subClassOf rdf:resource="#Activity"/>
    <owl:disjointWith rdf:resource="#Adventure"/>
    <owl:disjointWith rdf:resource="#Sightseeing"/>
    <owl:disjointWith rdf:resource="#Relaxation"/>
  </owl:Class>
  <owl:Class rdf:about="#Hotel">
    <owl:disjointWith rdf:resource="#Campground"/>
    <owl:disjointWith>
      <owl:Class rdf:about="#BedAndBreakfast"/>
    </owl:disjointWith>
    <rdfs:subClassOf>
      <owl:Class rdf:about="#Accommodation"/>
    </rdfs:subClassOf>
  </owl:Class>
  <owl:Class rdf:ID="Town">
    <rdfs:subClassOf rdf:resource="#UrbanArea"/>
  </owl:Class>
  <owl:Class rdf:about="#RuralArea">
    <rdfs:subClassOf rdf:resource="#Destination"/>
    <owl:disjointWith rdf:resource="#UrbanArea"/>
  </owl:Class>
  <owl:Class rdf:about="#Accommodation">
    <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
    >A place to stay for tourists.</rdfs:comment>
  </owl:Class>
  <owl:Class rdf:ID="Surfing">
    <rdfs:subClassOf rdf:resource="#Sports"/>
  </owl:Class>
  <owl:Class rdf:about="#BudgetAccommodation">
    <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
    >Accommodation that has either one or two star rating.</rdfs:comment>
    <owl:equivalentClass>
      <owl:Class>
        <owl:intersectionOf rdf:parseType="Collection">
          <owl:Class rdf:about="#Accommodation"/>
          <owl:Restriction>
            <owl:onProperty>
              <owl:ObjectProperty rdf:about="#hasRating"/>
            </owl:onProperty>
            <owl:someValuesFrom>
              <owl:Class>
                <owl:oneOf rdf:parseType="Collection">
                  <AccommodationRating rdf:about="#OneStarRating"/>
                  <AccommodationRating rdf:about="#TwoStarRating"/>
                </owl:oneOf>
              </owl:Class>
            </owl:someValuesFrom>
          </owl:Restriction>
        </owl:intersectionOf>
      </owl:Class>
    </owl:equivalentClass>
  </owl:Class>
  <owl:Class rdf:about="#BedAndBreakfast">
    <rdfs:subClassOf rdf:resource="#Accommodation"/>
    <owl:disjointWith rdf:resource="#Hotel"/>
    <owl:disjointWith rdf:resource="#Campground"/>
  </owl:Class>
  <owl:Class rdf:ID="BunjeeJumping">
    <rdfs:subClassOf rdf:resource="#Adventure"/>
  </owl:Class>
  <owl:Class rdf:about="#LuxuryHotel">
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty>
          <owl:ObjectProperty rdf:about="#hasRating"/>
        </owl:onProperty>
        <owl:hasValue rdf:resource="#ThreeStarRating"/>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf rdf:resource="#Hotel"/>
  </owl:Class>
  <owl:Class rdf:ID="Farmland">
    <rdfs:subClassOf rdf:resource="#RuralArea"/>
  </owl:Class>
  <owl:Class rdf:ID="Contact"/>
  <owl:ObjectProperty rdf:about="#hasActivity">
    <owl:inverseOf>
      <owl:ObjectProperty rdf:ID="isOfferedAt"/>
    </owl:inverseOf>
    <rdfs:range rdf:resource="#Activity"/>
    <rdfs:domain rdf:resource="#Destination"/>
  </owl:ObjectProperty>
  <owl:ObjectProperty rdf:about="#hasRating">
    <rdfs:domain rdf:resource="#Accommodation"/>
    <rdfs:range rdf:resource="#AccommodationRating"/>
  </owl:ObjectProperty>
  <owl:ObjectProperty rdf:ID="hasContact">
    <rdfs:range rdf:resource="#Contact"/>
    <rdfs:domain rdf:resource="#Activity"/>
  </owl:ObjectProperty>
  <owl:ObjectProperty rdf:about="#isOfferedAt">
    <rdfs:range rdf:resource="#Destination"/>
    <owl:inverseOf rdf:resource="#hasActivity"/>
    <rdfs:domain rdf:resource="#Activity"/>
  </owl:ObjectProperty>
  <owl:ObjectProperty rdf:about="#hasAccommodation">
    <rdfs:range rdf:resource="#Accommodation"/>
    <rdfs:domain rdf:resource="#Destination"/>
  </owl:ObjectProperty>
  <owl:ObjectProperty rdf:ID="hasPart">
    <rdfs:domain rdf:resource="#Destination"/>
    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#TransitiveProperty"/>
    <rdfs:range rdf:resource="#Destination"/>
  </owl:ObjectProperty>
  <owl:FunctionalProperty rdf:ID="hasCity">
    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
    <rdfs:domain rdf:resource="#Contact"/>
  </owl:FunctionalProperty>
  <owl:FunctionalProperty rdf:ID="hasZipCode">
    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#int"/>
    <rdfs:domain rdf:resource="#Contact"/>
  </owl:FunctionalProperty>
  <owl:FunctionalProperty rdf:ID="hasStreet">
    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
    <rdfs:domain rdf:resource="#Contact"/>
  </owl:FunctionalProperty>
  <owl:FunctionalProperty rdf:ID="hasEMail">
    <rdfs:domain rdf:resource="#Contact"/>
    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
  </owl:FunctionalProperty>
  <RuralArea rdf:ID="Woomera"/>
  <Beach rdf:ID="BondiBeach"/>
  <NationalPark rdf:ID="BlueMountains"/>
  <NationalPark rdf:ID="Warrumbungles"/>
  <Capital rdf:ID="Canberra"/>
  <Beach rdf:ID="CurrawongBeach"/>
  <LuxuryHotel rdf:ID="FourSeasons"/>
  <Capital rdf:ID="Sydney">
    <hasPart rdf:resource="#BondiBeach"/>
    <hasAccommodation rdf:resource="#FourSeasons"/>
    <hasPart rdf:resource="#CurrawongBeach"/>
  </Capital>
  <RuralArea rdf:ID="CapeYork"/>
  <Town rdf:ID="Coonabarabran"/>
  <City rdf:ID="Cairns"/>
</rdf:RDF>

<!-- Created with Protege (with OWL Plugin 2.1, Build 284)  http://protege.stanford.edu -->


--  作者:coco
--  发布时间:11/14/2006 9:55:00 PM

--  
来学习.
--  作者:NewlearnYY
--  发布时间:11/17/2006 2:59:00 PM

--  
谢谢楼上那位好些的人!真的非常感谢!
呵呵,我的问题已
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
170.898ms