OWL API:如何在OWLObjectProperty上将域分配给范围

时间:2014-04-06 20:23:03

标签: java netbeans owl-api

实际上我想创建一个基于概念列表(String)和概念之间关系(Map)的本体。我有两种类型的关系“种类”和“子主题”。所以我尝试通过owl api创建这个本体。为了创建两个OWL类之间的关系,我使用了OWLObjectPreportyDomain和OWLObjectProprertyRange,并通过OWLObjectProperty指定了一个关系。 我的问题是当我创建一个具有许多域和多个范围的关系时,我没有找到将每个域分配给每个范围的方法。 我想为此找到解决方案。任何人都可以给我一个想法吗?

例如,我有这个Map:Map<String, String> relation = new HashMap<String, String>;,它包含两个概念和彼此之间的关系。 LinkedList<Map<String, String>> listRelation = new LikedList<Map<String,String>>; 此列表包含概念之间的关系列表。 relation("concept1")="AUTHETICATION"; realtion("relation")="kind of"; relation("concept2")="VALIDATION"; listRelation.add(relation); relation = new HashMap<String, String>; relation("concept1")="ENCRYPTION"; realtion("relation")="kind of"; relation("concept2")="CRYPTHOGRAPHY"; listRelation.add(relation); 我创建了一个包含概念和其实例的其他Map,如: Map<String,String> inst; inst("concept")="authentication"; inst("instance")="topNet"; 我怎么能在OWL中创建它。概念是OWLClass或OWLNamedIndividual。如果他们是OWLNamedIndividual所以实例是什么。此外,如果概念是OWLClass如何声明它们之间的关系?

2 个答案:

答案 0 :(得分:0)

从您的示例中,我得到的结论是AuthenticationValidation不是类,而是个人,而您拥有的是断言,而不是域和范围声明。

但是,声明多个域相当于声明列出的所有类的交集并将其指定为域;同样的范围。特定范围没有首选域。

您可以做的是,例如,编写身份验证的C类子类和all kind_of Validation的子类,对于任何实例,它将断言kind_of

的域和范围等价物

答案 1 :(得分:0)

class = concept, individual = instance(一个类,你实例化一个类来获取个人)

我将继续假设您考虑这些类/概念。

如果您只想说加密是一种加密技术,那么您只需要声明Ecryption subClassOf Cryptography。根本不需要对象属性。

如果您想要使用其他类型的关系,请说“hasRelationYTo”,您将编写公理,例如

  

加密和hasRelationYTo some / only Cryptography(曼彻斯特语法)

像Ignazio说的那样,

  

域类表达式与之间没有特定的关系   范围类表达式,在OWL中

属性的范围和域(= relation = function)是通用的,用于防止错误。这意味着您无法指定

Domain1 - propA - Range1(但不是,说Domain2 - propA - Range1)

Domain2-propA -Range2

对象属性声明允许您声明,如{Domain1 U Domain2} - propA - {Range1 U Range2}。如果你真的需要做上面这样的事情,你将不得不使用2个不同的对象属性propA和propB。通常情况并非如此,将多个域和范围放在一起就足够了。

这是建模

的OWL文件

“AUTHENTIFICATION”是一种“验证”

“ENCRYPTION”是一种“加密”

另外,你可能想看一下protege pizza教程,以便更好地了解OWL。如果我记得很清楚,那只需要大约20分钟。

<?xml version="1.0"?>


<!DOCTYPE rdf:RDF [
<!ENTITY owl "http://www.w3.org/2002/07/owl#" >
<!ENTITY xsd "http://www.w3.org/2001/XMLSchema#" >
<!ENTITY rdfs "http://www.w3.org/2000/01/rdf-schema#" >
<!ENTITY rdf "http://www.w3.org/1999/02/22-rdf-syntax-ns#" >

] GT;

    

<!-- 
///////////////////////////////////////////////////////////////////////////////////////
//
// Object Properties
//
///////////////////////////////////////////////////////////////////////////////////////
 -->




<!-- http://www.semanticweb.org/tudose/ontologies/2014/3/untitled-ontology-59#is_a_kind_of -->

<owl:ObjectProperty rdf:about="http://www.semanticweb.org/tudose/ontologies/2014/3/untitled-ontology-59#is_a_kind_of"/>



<!-- 
///////////////////////////////////////////////////////////////////////////////////////
//
// Classes
//
///////////////////////////////////////////////////////////////////////////////////////
 -->




<!-- http://www.semanticweb.org/tudose/ontologies/2014/3/untitled-ontology-59#AUTHENTIFICATION -->

<owl:Class rdf:about="http://www.semanticweb.org/tudose/ontologies/2014/3/untitled-ontology-59#AUTHENTIFICATION">
    <rdfs:subClassOf>
        <owl:Restriction>
            <owl:onProperty rdf:resource="http://www.semanticweb.org/tudose/ontologies/2014/3/untitled-ontology-59#is_a_kind_of"/>
            <owl:someValuesFrom rdf:resource="http://www.semanticweb.org/tudose/ontologies/2014/3/untitled-ontology-59#Validation"/>
        </owl:Restriction>
    </rdfs:subClassOf>
</owl:Class>



<!-- http://www.semanticweb.org/tudose/ontologies/2014/3/untitled-ontology-59#Cryptography -->

<owl:Class rdf:about="http://www.semanticweb.org/tudose/ontologies/2014/3/untitled-ontology-59#Cryptography">
    <rdfs:subClassOf>
        <owl:Restriction>
            <owl:onProperty rdf:resource="http://www.semanticweb.org/tudose/ontologies/2014/3/untitled-ontology-59#is_a_kind_of"/>
            <owl:someValuesFrom rdf:resource="http://www.semanticweb.org/tudose/ontologies/2014/3/untitled-ontology-59#Encryption"/>
        </owl:Restriction>
    </rdfs:subClassOf>
</owl:Class>



<!-- http://www.semanticweb.org/tudose/ontologies/2014/3/untitled-ontology-59#Encryption -->

<owl:Class rdf:about="http://www.semanticweb.org/tudose/ontologies/2014/3/untitled-ontology-59#Encryption"/>



<!-- http://www.semanticweb.org/tudose/ontologies/2014/3/untitled-ontology-59#Validation -->

<owl:Class rdf:about="http://www.semanticweb.org/tudose/ontologies/2014/3/untitled-ontology-59#Validation"/>