0

Protégé では、クラスServiceAttributesなどでオントロジーを作成し、次のようにオブジェクト プロパティhasAttributesを作成しました。

サービスには属性があります 属性 (serviceIdentifier:String、Type(String)、Description (sting)、providerIdentifier (String)、InputParameter ()、OutputParameter ()、price (Integer))

私の質問は、クラスAttributesのサブクラスまたはデータ プロパティとして、serviceidentifiertypedescriptionなどを考慮する必要がありますか?

オントロジーは次のとおりです。

<?xml version="1.0"?>


<!DOCTYPE Ontology [
    <!ENTITY xsd "http://www.w3.org/2001/XMLSchema#" >
    <!ENTITY xml "http://www.w3.org/XML/1998/namespace" >
    <!ENTITY rdfs "http://www.w3.org/2000/01/rdf-schema#" >
    <!ENTITY rdf "http://www.w3.org/1999/02/22-rdf-syntax-ns#" >
]>


<Ontology xmlns="http://www.w3.org/2002/07/owl#"
     xml:base="http://www.semanticweb.org/acer/ontologies/2014/1/untitled-ontology-56"
     xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
     xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
     xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
     xmlns:xml="http://www.w3.org/XML/1998/namespace"
     ontologyIRI="http://www.semanticweb.org/acer/ontologies/2014/1/untitled-ontology-56">
    <Prefix name="rdf" IRI="http://www.w3.org/1999/02/22-rdf-syntax-ns#"/>
    <Prefix name="rdfs" IRI="http://www.w3.org/2000/01/rdf-schema#"/>
    <Prefix name="xsd" IRI="http://www.w3.org/2001/XMLSchema#"/>
    <Prefix name="owl" IRI="http://www.w3.org/2002/07/owl#"/>
    <Declaration>
        <Class IRI="#attributes"/>
    </Declaration>
    <Declaration>
        <Class IRI="#capsule"/>
    </Declaration>
    <Declaration>
        <Class IRI="#requirement"/>
    </Declaration>
    <Declaration>
        <Class IRI="#service"/>
    </Declaration>
    <Declaration>
        <ObjectProperty IRI="#hasAttribute"/>
    </Declaration>
    <Declaration>
        <ObjectProperty IRI="#hasCapsule"/>
    </Declaration>
    <Declaration>
        <ObjectProperty IRI="#hasRequirement"/>
    </Declaration>
    <Declaration>
        <DataProperty IRI="#description"/>
    </Declaration>
    <Declaration>
        <DataProperty IRI="#diskFree"/>
    </Declaration>
    <Declaration>
        <DataProperty IRI="#diskFreeUnit"/>
    </Declaration>
    <Declaration>
        <DataProperty IRI="#diskFreeValue"/>
    </Declaration>
    <Declaration>
        <DataProperty IRI="#inputParameter"/>
    </Declaration>
    <Declaration>
        <DataProperty IRI="#location"/>
    </Declaration>
    <Declaration>
        <DataProperty IRI="#memoryFree"/>
    </Declaration>
    <Declaration>
        <DataProperty IRI="#memoryFreeUnit"/>
    </Declaration>
    <Declaration>
        <DataProperty IRI="#memoryFreeValue"/>
    </Declaration>
    <Declaration>
        <DataProperty IRI="#numInstance"/>
    </Declaration>
    <Declaration>
        <DataProperty IRI="#operationSystem"/>
    </Declaration>
    <Declaration>
        <DataProperty IRI="#outputParameter"/>
    </Declaration>
    <Declaration>
        <DataProperty IRI="#port"/>
    </Declaration>
    <Declaration>
        <DataProperty IRI="#price"/>
    </Declaration>
    <Declaration>
        <DataProperty IRI="#protocol"/>
    </Declaration>
    <Declaration>
        <DataProperty IRI="#providerIdentifier"/>
    </Declaration>
    <Declaration>
        <DataProperty IRI="#serviceIdentifier"/>
    </Declaration>
    <Declaration>
        <DataProperty IRI="#type"/>
    </Declaration>
    <SubClassOf>
        <Class IRI="#attributes"/>
        <DataAllValuesFrom>
            <DataProperty IRI="#description"/>
            <Datatype abbreviatedIRI="xsd:string"/>
        </DataAllValuesFrom>
    </SubClassOf>
    <SubClassOf>
        <Class IRI="#attributes"/>
        <DataAllValuesFrom>
            <DataProperty IRI="#inputParameter"/>
            <Datatype abbreviatedIRI="xsd:string"/>
        </DataAllValuesFrom>
    </SubClassOf>
    <SubClassOf>
        <Class IRI="#attributes"/>
        <DataAllValuesFrom>
            <DataProperty IRI="#numInstance"/>
            <Datatype abbreviatedIRI="xsd:integer"/>
        </DataAllValuesFrom>
    </SubClassOf>
    <SubClassOf>
        <Class IRI="#attributes"/>
        <DataAllValuesFrom>
            <DataProperty IRI="#outputParameter"/>
            <Datatype abbreviatedIRI="xsd:string"/>
        </DataAllValuesFrom>
    </SubClassOf>
    <SubClassOf>
        <Class IRI="#attributes"/>
        <DataAllValuesFrom>
            <DataProperty IRI="#price"/>
            <Datatype abbreviatedIRI="xsd:string"/>
        </DataAllValuesFrom>
    </SubClassOf>
    <SubClassOf>
        <Class IRI="#attributes"/>
        <DataAllValuesFrom>
            <DataProperty IRI="#providerIdentifier"/>
            <Datatype abbreviatedIRI="xsd:string"/>
        </DataAllValuesFrom>
    </SubClassOf>
    <SubClassOf>
        <Class IRI="#attributes"/>
        <DataAllValuesFrom>
            <DataProperty IRI="#serviceIdentifier"/>
            <Datatype abbreviatedIRI="xsd:string"/>
        </DataAllValuesFrom>
    </SubClassOf>
    <SubClassOf>
        <Class IRI="#attributes"/>
        <DataAllValuesFrom>
            <DataProperty IRI="#type"/>
            <Datatype abbreviatedIRI="xsd:string"/>
        </DataAllValuesFrom>
    </SubClassOf>
    <SubClassOf>
        <Class IRI="#capsule"/>
        <DataAllValuesFrom>
            <DataProperty IRI="#location"/>
            <Datatype abbreviatedIRI="xsd:string"/>
        </DataAllValuesFrom>
    </SubClassOf>
    <SubClassOf>
        <Class IRI="#capsule"/>
        <DataAllValuesFrom>
            <DataProperty IRI="#port"/>
            <Datatype abbreviatedIRI="xsd:integer"/>
        </DataAllValuesFrom>
    </SubClassOf>
    <SubClassOf>
        <Class IRI="#capsule"/>
        <DataAllValuesFrom>
            <DataProperty IRI="#protocol"/>
            <Datatype abbreviatedIRI="xsd:string"/>
        </DataAllValuesFrom>
    </SubClassOf>
    <SubClassOf>
        <Class IRI="#requirement"/>
        <DataAllValuesFrom>
            <DataProperty IRI="#diskFreeUnit"/>
            <Datatype abbreviatedIRI="xsd:string"/>
        </DataAllValuesFrom>
    </SubClassOf>
    <SubClassOf>
        <Class IRI="#requirement"/>
        <DataAllValuesFrom>
            <DataProperty IRI="#diskFreeValue"/>
            <Datatype abbreviatedIRI="xsd:integer"/>
        </DataAllValuesFrom>
    </SubClassOf>
    <SubClassOf>
        <Class IRI="#requirement"/>
        <DataAllValuesFrom>
            <DataProperty IRI="#memoryFreeUnit"/>
            <Datatype abbreviatedIRI="xsd:string"/>
        </DataAllValuesFrom>
    </SubClassOf>
    <SubClassOf>
        <Class IRI="#requirement"/>
        <DataAllValuesFrom>
            <DataProperty IRI="#memoryFreeValue"/>
            <Datatype abbreviatedIRI="xsd:string"/>
        </DataAllValuesFrom>
    </SubClassOf>
    <SubClassOf>
        <Class IRI="#requirement"/>
        <DataAllValuesFrom>
            <DataProperty IRI="#operationSystem"/>
            <Datatype abbreviatedIRI="xsd:string"/>
        </DataAllValuesFrom>
    </SubClassOf>
    <SubClassOf>
        <Class IRI="#service"/>
        <ObjectSomeValuesFrom>
            <ObjectProperty IRI="#hasAttribute"/>
            <Class IRI="#attributes"/>
        </ObjectSomeValuesFrom>
    </SubClassOf>
    <SubClassOf>
        <Class IRI="#service"/>
        <ObjectSomeValuesFrom>
            <ObjectProperty IRI="#hasCapsule"/>
            <Class IRI="#capsule"/>
        </ObjectSomeValuesFrom>
    </SubClassOf>
    <SubClassOf>
        <Class IRI="#service"/>
        <ObjectSomeValuesFrom>
            <ObjectProperty IRI="#hasRequirement"/>
            <Class IRI="#requirement"/>
        </ObjectSomeValuesFrom>
    </SubClassOf>
    <SubDataPropertyOf>
        <DataProperty IRI="#diskFreeUnit"/>
        <DataProperty IRI="#diskFree"/>
    </SubDataPropertyOf>
    <SubDataPropertyOf>
        <DataProperty IRI="#diskFreeValue"/>
        <DataProperty IRI="#diskFree"/>
    </SubDataPropertyOf>
    <SubDataPropertyOf>
        <DataProperty IRI="#memoryFreeUnit"/>
        <DataProperty IRI="#memoryFree"/>
    </SubDataPropertyOf>
    <SubDataPropertyOf>
        <DataProperty IRI="#memoryFreeValue"/>
        <DataProperty IRI="#memoryFree"/>
    </SubDataPropertyOf>
</Ontology>



<!-- Generated by the OWL API (version 3.4.2) http://owlapi.sourceforge.net -->
4

1 に答える 1

2

質問が今書かれているので、あなたが何を求めているかを伝えるのは少し難しいですが、私があなたを正しく理解していれば、私の印象では、あなたは現在2つのクラスを持っているということです:

  • サービス
  • 属性

また、hasAttribute プロパティによってサービスを属性に関連付けることができます。さらに、各属性は、いくつかのプロパティのいくつかの値によって記述されます。

  • serviceIdentifier (範囲: 文字列)
  • タイプ (範囲: 文字列)
  • 説明 (範囲: 文字列)
  • inputParameter (範囲: 指定なし)
  • outputParameter (範囲: 指定なし)
  • 価格 (範囲: 整数)

つまり、次のようなデータがある可能性があります。

:service72 :hasAttribute _:attr1 .
_:attr1 rdf:type :Attribute .
_:attr1 :price 73 .

なんらかの理由で属性のインスタンスを実際に参照する必要がない限り、この表現は必要以上に複雑に見えます。特定の質問に関して:

クラス属性のサブクラスまたはデータプロパティとして、サービス識別子、タイプ、説明などを考慮する必要がありますか?

たとえば、ServiceIdentifier を Attribute のサブクラスとして宣言することもできますが、サービス プロバイダーの重要な値が文字列である場合、ServiceIdentifier のインスタンスを実際にサービスを識別する文字列に関連付けるデータ プロパティが必要になります。つまり、次のようなデータになります。

:service72 :hasAttribute _:attr
_:attr rdf:type :ServiceIdentifier .
_:attr :hasServiceIdentifierString "service identification"

オブジェクト プロパティは個体を他の個体に関連付け、データ プロパティは個体をリテラル データに関連付けます。hasAttribute をオブジェクト プロパティにする場合、属性は個別である必要があり、さまざまな種類の属性を Attrbute のサブクラスにすることができますが、Attribute のインスタンスを実際の属性値に関連付けるためにデータ プロパティが必要になります。

簡単に hasAttribute をデータ プロパティにして、これらのプロパティを hasAttribute のサブプロパティであるデータ プロパティとして宣言できると思います。つまり、次のようなプロパティ階層があります。

  • hasAttribute (範囲: 指定なし)
    • serviceIdentifier (範囲: 文字列)
    • タイプ (範囲: 文字列)
    • 説明 (範囲: 文字列)
    • …</li>

次に、次のようなデータを取得できます。

:service72 :serviceIdentifier "some identification" .
:service72 :type "my favorite service" .
:service72 :price 32 .

次に、これらのプロパティは hasAttribute のサブプロパティであるため、推論を使用すると、必要に応じて次のトリプルを推測できます。

:service72 :hasAttribute "some identification" .
:service72 :hasAttribute "my favorite service" .
:service72 :hasAttribute 32 .

一般に、早い段階で必要最小限の構造を使用し、進歩してもう少し構造が必要になったときにオントロジーを改良することは悪い考えではないかもしれません。

于 2014-02-24T19:42:55.213 に答える