以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 Semantic Web(语义Web)/描述逻辑/本体 』  (http://bbs.xml.org.cn/list.asp?boardid=2)
----  高手讨论一下OntProperty.listDomain()这个方法是否真的可用!  (http://bbs.xml.org.cn/dispbbs.asp?boardid=2&rootid=&id=37410)


--  作者:horizonman
--  发布时间:8/30/2006 12:06:00 PM

--  高手讨论一下OntProperty.listDomain()这个方法是否真的可用!
想通过OntProperty.listDomain()获得某个属性(A)的Domain,发现不管属性A的domain有几个,这个方法只会返回一个。查看了owl中是这样描述的:
      <owl:ObjectProperty rdf:ID="has_Deviation">
    <rdfs:domain>
      <owl:Class>
        <owl:unionOf rdf:parseType="Collection">
          <owl:Class rdf:about="#HazopResult"/>
          <owl:Class rdf:about="#案例库"/>
        </owl:unionOf>
      </owl:Class>
    </rdfs:domain>
    <rdfs:range rdf:resource="#Deviation"/>
  </owl:ObjectProperty>以上代码明显表述属性“has_Deviation”有两个domain:“HazopResult”和“案例库”

将上述代码所在的owl导入到mysql中,发现代码所关联的条目如图:

此主题相关图片如下:
按此在新窗口浏览图片

我用以下代码:
OntModel lll = newOntModelFromDB.getOntModelfromDB(MODEL_NAME);
OntProperty pp = lll.getOntProperty("http://www.owl-ontologies.com/unnamed.owl#has_Deviation");
for(ExtendedIterator ExIter = pp.listDomain();ExIter.hasNext();){
            OntResource tempind = (OntResource)ExIter.next();
            System.out.println("the domain is : "+tempind.toString());  
        }

结果返回的结果是:
the domain is : 24667343:10d589df4ec:-7fba

感觉方法listDomain()并没有返回所有的Domain。

不知道该怎么办??

如果像返回属性的Domain该怎么办??
谢谢:)


--  作者:jpz6311whu
--  发布时间:8/30/2006 12:50:00 PM

--  
<owl:ObjectProperty rdf:ID="has_Deviation">
    <rdfs:domain>
      <owl:Class>
        <owl:unionOf rdf:parseType="Collection">
          <owl:Class rdf:about="#HazopResult"/>
          <owl:Class rdf:about="#案例库"/>
        </owl:unionOf>
      </owl:Class>
    </rdfs:domain>
    <rdfs:range rdf:resource="#Deviation"/>
  </owl:ObjectProperty>以上代码明显表述属性“has_Deviation”有两个domain:“HazopResult”和“案例库”


-------

以上代码明显表述属性“has_Deviation”只有一个domain:“HazopResult”和“案例库”的union
,而并非两个。


--  作者:Ambrosia
--  发布时间:8/30/2006 6:38:00 PM

--  
用递归自动进行语法推理
--  作者:horizonman
--  发布时间:8/30/2006 9:36:00 PM

--  
呵呵!问题已经解决,是属性的domain多于2层的话,就被自动的转换成一个UnionClass.出现的乱码是一个匿名资源。讲listdomain()得到的OntResource用asUnionClass()方法转换成UnionClass,然后就可以用其函数列出这个UnionClass所包含的OntClass了。代码如下:
for(ExtendedIterator ExIter = pp.listDomain();ExIter.hasNext();){
            
            OntResource tempind = (OntResource) ExIter.next();
            UnionClass tempc = tempind.asClass().asUnionClass();
            
            for(ExtendedIterator ExIter2 = tempc.listOperands();ExIter2.hasNext();){
            
                OntClass tempind2 = (OntClass) ExIter2.next();
                System.out.println(tempind2.toString());
            }
        }


在这里再次给回帖的同志表示感谢!谢谢:)同时祝七夕快乐!


--  作者:linkejie126
--  发布时间:6/10/2009 6:47:00 PM

--  
以下是引用jpz6311whu在2006-8-30 12:50:00的发言:

以上代码明显表述属性“has_Deviation”只有一个domain:“HazopResult”和“案例库”的union
,而并非两个。


字面上怎么解释了,有通俗点的说话吗?
domain只有一个,要怎么解释能?


--  作者:jpz6311whu
--  发布时间:6/13/2009 12:18:00 PM

--  
以下是引用linkejie126在2009-6-10 18:47:00的发言:
[quote]以下是引用jpz6311whu在2006-8-30 12:50:00的发言:

  以上代码明显表述属性“has_Deviation”只有一个domain:“HazopResult”和“案例库”的union
  ,而并非两个。
  
[/quote]

字面上怎么解释了,有通俗点的说话吗?
domain只有一个,要怎么解释能?



那一个domain就是那个unionclass,它是一个匿名类
--  作者:linkejie126
--  发布时间:6/13/2009 7:32:00 PM

--  
能明白楼上的意思。
但我想问下,能否字面表达下这个属性的意思。

如果属性的domain是一个类,那好表达。
比如属性“名字”,domain是个一个类 ,比如“人”。
那可以表达成:“人”有个属性是“名字”。

但如果上楼主说的这种情况,
该怎么表达呢,

最近在写论文,想清楚表达当domain是个COLLECTION的时候,该怎么说的清楚。
谢谢楼上的了,万分感谢。


--  作者:jpz6311whu
--  发布时间:6/13/2009 7:47:00 PM

--  
可以表达成:
“人”有个属性是“名字”。

“HazopResult”和“案例库”都有个属性是“has_Deviation”


--  作者:linkejie126
--  发布时间:6/13/2009 9:11:00 PM

--  
“HazopResult”和“案例库”都有个属性是“has_Deviation”???

都有??好像不大准确吧?

比如调用listDomain()这个方法,HazopResult”和“案例库”都应该没有has_Deviation这个属性吧。

麻烦楼上的了,不好意思啊。


--  作者:linkejie126
--  发布时间:6/13/2009 9:17:00 PM

--  
说错了,不是listDoman()方法。

应该对 HazopResult”和“案例库”  这两个类,调用 listOntProperties() 方法,
都没有该属性。


--  作者:jpz6311whu
--  发布时间:6/13/2009 9:19:00 PM

--  
“HazopResult”和“案例库”并集有个属性是“has_Deviation”
--  作者:linkejie126
--  发布时间:6/13/2009 10:14:00 PM

--  
谢谢了,真的非常谢谢。

W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
93.750ms