Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sparql 定制本体与RDFs_Sparql_Rdf_Owl_Ontology_Rdfs - Fatal编程技术网

Sparql 定制本体与RDFs

Sparql 定制本体与RDFs,sparql,rdf,owl,ontology,rdfs,Sparql,Rdf,Owl,Ontology,Rdfs,我使用Protege创建了一个定制的OWL本体,Protege以基于树的RDF/XML格式序列化 我想做的是从自定义本体中预定义的类创建RDF三元组,并将它们存储在RDF文件中。并使用SPARQL查询这些三元组。我该怎么做 ==更新=== 这就是我的自定义本体的样子,它有注释类和 isAbout对象属性 <?xml version="1.0"?> <!DOCTYPE rdf:RDF [ <!ENTITY owl "http://www.w3.org/2002/

我使用Protege创建了一个定制的OWL本体,Protege以基于树的RDF/XML格式序列化

我想做的是从自定义本体中预定义的类创建RDF三元组,并将它们存储在RDF文件中。并使用SPARQL查询这些三元组。我该怎么做

==更新===

这就是我的自定义本体的样子,它有注释类和 isAbout对象属性

<?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#" >
    <!ENTITY reviews_2 "http://review-analyzer.local/ontologies/reviews_2.owl#" >
]>


<rdf:RDF xmlns="http://review-analyzer.local/ontologies/reviews_2.owl#"
     xml:base="http://review-analyzer.local/ontologies/reviews_2.owl"
     xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
     xmlns:reviews_2="http://review-analyzer.local/ontologies/reviews_2.owl#"
     xmlns:owl="http://www.w3.org/2002/07/owl#"
     xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
     xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
    <owl:Ontology rdf:about="http://review-analyzer.local/ontologies/reviews_2.owl"/>



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




    <!-- http://review-analyzer.local/ontologies/reviews_2.owl#isAbout -->

    <owl:ObjectProperty rdf:about="&reviews_2;isAbout">
        <rdf:type rdf:resource="&owl;FunctionalProperty"/>
        <rdfs:range rdf:resource="&reviews_2;Feature"/>
        <rdfs:domain rdf:resource="&reviews_2;Review"/>
    </owl:ObjectProperty>



    <!-- 
    //
    // Data properties
    //
     -->




    <!-- http://review-analyzer.local/ontologies/reviews_2.owl#comment -->

    <owl:DatatypeProperty rdf:about="&reviews_2;comment">
        <rdf:type rdf:resource="&owl;FunctionalProperty"/>
        <rdfs:domain rdf:resource="&reviews_2;Review"/>
        <rdfs:range rdf:resource="&xsd;string"/>
    </owl:DatatypeProperty>



    <!-- http://review-analyzer.local/ontologies/reviews_2.owl#rating -->

    <owl:DatatypeProperty rdf:about="&reviews_2;rating">
        <rdf:type rdf:resource="&owl;FunctionalProperty"/>
        <rdfs:domain rdf:resource="&reviews_2;Review"/>
        <rdfs:range rdf:resource="&xsd;integer"/>
    </owl:DatatypeProperty>



    <!-- http://review-analyzer.local/ontologies/reviews_2.owl#type -->

    <owl:DatatypeProperty rdf:about="&reviews_2;type">
        <rdf:type rdf:resource="&owl;FunctionalProperty"/>
        <rdfs:domain rdf:resource="&reviews_2;Feature"/>
    </owl:DatatypeProperty>



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




    <!-- http://review-analyzer.local/ontologies/reviews_2.owl#Battery -->

    <owl:Class rdf:about="&reviews_2;Battery">
        <rdfs:subClassOf rdf:resource="&reviews_2;Feature"/>
    </owl:Class>



    <!-- http://review-analyzer.local/ontologies/reviews_2.owl#Body -->

    <owl:Class rdf:about="&reviews_2;Body">
        <rdfs:subClassOf rdf:resource="&reviews_2;Feature"/>
    </owl:Class>



    <!-- http://review-analyzer.local/ontologies/reviews_2.owl#Camera -->

    <owl:Class rdf:about="&reviews_2;Camera">
        <rdfs:subClassOf rdf:resource="&reviews_2;Feature"/>
    </owl:Class>



    <!-- http://review-analyzer.local/ontologies/reviews_2.owl#Display -->

    <owl:Class rdf:about="&reviews_2;Display">
        <rdfs:subClassOf rdf:resource="&reviews_2;Feature"/>
    </owl:Class>



    <!-- http://review-analyzer.local/ontologies/reviews_2.owl#Feature -->

    <owl:Class rdf:about="&reviews_2;Feature"/>



    <!-- http://review-analyzer.local/ontologies/reviews_2.owl#Memory -->

    <owl:Class rdf:about="&reviews_2;Memory">
        <rdfs:subClassOf rdf:resource="&reviews_2;Feature"/>
    </owl:Class>



    <!-- http://review-analyzer.local/ontologies/reviews_2.owl#Platform -->

    <owl:Class rdf:about="&reviews_2;Platform">
        <rdfs:subClassOf rdf:resource="&reviews_2;Feature"/>
    </owl:Class>



    <!-- http://review-analyzer.local/ontologies/reviews_2.owl#Review -->

    <owl:Class rdf:about="&reviews_2;Review"/>



    <!-- http://review-analyzer.local/ontologies/reviews_2.owl#front -->

    <owl:Class rdf:about="&reviews_2;front">
        <rdfs:subClassOf rdf:resource="&reviews_2;Camera"/>
    </owl:Class>



    <!-- 
    //
    // Individuals
    //
     -->




    <!-- http://review-analyzer.local/ontologies/reviews_2.owl#Battery -->

    <owl:NamedIndividual rdf:about="&reviews_2;Battery">
        <rdf:type rdf:resource="&reviews_2;Battery"/>
        <type rdf:datatype="&xsd;string">battery</type>
    </owl:NamedIndividual>



    <!-- http://review-analyzer.local/ontologies/reviews_2.owl#OLED -->

    <owl:NamedIndividual rdf:about="&reviews_2;OLED">
        <rdf:type rdf:resource="&reviews_2;Display"/>
        <type rdf:datatype="&xsd;string">OLED</type>
    </owl:NamedIndividual>



    <!-- http://review-analyzer.local/ontologies/reviews_2.owl#amoled -->

    <owl:NamedIndividual rdf:about="&reviews_2;amoled">
        <rdf:type rdf:resource="&reviews_2;Display"/>
        <type rdf:datatype="&xsd;string">amoled</type>
    </owl:NamedIndividual>



    <!-- http://review-analyzer.local/ontologies/reviews_2.owl#fCameraReview -->

    <owl:NamedIndividual rdf:about="&reviews_2;fCameraReview">
        <rdf:type rdf:resource="&reviews_2;Review"/>
        <rating rdf:datatype="&xsd;integer">3</rating>
        <comment rdf:datatype="&xsd;string">awesome</comment>
        <isAbout rdf:resource="&reviews_2;frontCamera"/>
    </owl:NamedIndividual>



    <!-- http://review-analyzer.local/ontologies/reviews_2.owl#frontCamera -->

    <owl:NamedIndividual rdf:about="&reviews_2;frontCamera">
        <rdf:type rdf:resource="&reviews_2;front"/>
        <type rdf:datatype="&xsd;string">front camera</type>
    </owl:NamedIndividual>



    <!-- http://review-analyzer.local/ontologies/reviews_2.owl#review -->

    <owl:NamedIndividual rdf:about="&reviews_2;review">
        <rdf:type rdf:resource="&reviews_2;Review"/>
        <rating rdf:datatype="&xsd;integer">3</rating>
        <comment rdf:datatype="&xsd;string">great</comment>
        <isAbout rdf:resource="&reviews_2;amoled"/>
    </owl:NamedIndividual>



    <!-- http://review-analyzer.local/ontologies/reviews_2.owl#tt -->

    <owl:NamedIndividual rdf:about="&reviews_2;tt">
        <rdf:type rdf:resource="&reviews_2;Review"/>
        <rating rdf:datatype="&xsd;integer">3</rating>
        <comment rdf:datatype="&xsd;string">nice one</comment>
        <isAbout rdf:resource="&reviews_2;amoled"/>
    </owl:NamedIndividual>



    <!-- http://review-analyzer.local/ontologies/reviews_2.owl#tt2 -->

    <owl:NamedIndividual rdf:about="&reviews_2;tt2">
        <rdf:type rdf:resource="&reviews_2;Review"/>
        <rating rdf:datatype="&xsd;integer">2</rating>
        <comment rdf:datatype="&xsd;string">dfgh</comment>
        <isAbout rdf:resource="&reviews_2;amoled"/>
    </owl:NamedIndividual>



    <!-- http://review-analyzer.local/ontologies/reviews_2.owl#xx -->

    <owl:NamedIndividual rdf:about="&reviews_2;xx">
        <rdf:type rdf:resource="&reviews_2;Review"/>
        <rating rdf:datatype="&xsd;integer">4</rating>
        <comment rdf:datatype="&xsd;string">great battery</comment>
        <isAbout rdf:resource="&reviews_2;Battery"/>
    </owl:NamedIndividual>



    <!-- http://review-analyzer.local/ontologies/reviews_2.owl#xx2 -->

    <owl:NamedIndividual rdf:about="&reviews_2;xx2">
        <rdf:type rdf:resource="&reviews_2;Review"/>
        <rating rdf:datatype="&xsd;integer">1</rating>
        <comment rdf:datatype="&xsd;string">fghjk</comment>
        <isAbout rdf:resource="&reviews_2;frontCamera"/>
    </owl:NamedIndividual>



    <!-- 
    //
    // General axioms
    //
     -->

    <rdf:Description>
        <rdf:type rdf:resource="&owl;AllDisjointClasses"/>
        <owl:members rdf:parseType="Collection">
            <rdf:Description rdf:about="&reviews_2;Battery"/>
            <rdf:Description rdf:about="&reviews_2;Body"/>
            <rdf:Description rdf:about="&reviews_2;Camera"/>
            <rdf:Description rdf:about="&reviews_2;Display"/>
            <rdf:Description rdf:about="&reviews_2;Memory"/>
            <rdf:Description rdf:about="&reviews_2;Platform"/>
        </owl:members>
    </rdf:Description>
</rdf:RDF>


RDF/XML就是RDF。任何接受SPARQL查询的存储库或库也应该通过库支持的加载机制接受文件的原样。例如,Jena和ARQ可以将其作为库处理,而Fuseki可以作为SPARQL端点处理。

RDF/XML就是RDF。任何接受SPARQL查询的存储库或库也应该通过库支持的加载机制接受文件的原样。例如,Jena和ARQ可以将其作为库处理,而Fuseki可以作为SPARQL端点处理。

您所说的“如何”是什么意思?只需编写包含数据的RDF文件。然后将数据加载到一些支持SPARQL的工具中,例如三重存储。然后,执行SPARQL查询。@AKSW请查看更新后的问题关系为
注释->审阅
,因此三重模式为
?注释cmnt:review?审阅。
-请始终以N-Triples(resp.Turtle)格式查看数据。这更接近SPARQLpatterns@AKSW有没有一种方法可以将此RDF用作我的本体的数据存储库?在查询本体时使用RDF文件中的数据?将两者都加载到tripe存储中,然后运行查询。我还是不知道你还想要什么。两者都是RDF文件,本体也是RDF。您必须将两者都加载到triple store,您只能查询triple store中包含的内容。这只是RDF的数据库你说的“如何”是什么意思?只需编写包含数据的RDF文件。然后将数据加载到一些支持SPARQL的工具中,例如三重存储。然后,执行SPARQL查询。@AKSW请查看更新后的问题关系为
注释->审阅
,因此三重模式为
?注释cmnt:review?审阅。
-请始终以N-Triples(resp.Turtle)格式查看数据。这更接近SPARQLpatterns@AKSW有没有一种方法可以将此RDF用作我的本体的数据存储库?在查询本体时使用RDF文件中的数据?将两者都加载到tripe存储中,然后运行查询。我还是不知道你还想要什么。两者都是RDF文件,本体也是RDF。您必须将两者都加载到triple store,您只能查询triple store中包含的内容。这只是一个RDF数据库。我可以使用owl本体中定义的对象属性来查询RDF,而不使用RDF数据创建个人?是的,但如果没有个人,则不会得到结果。这意味着我必须循环数据并创建个人。对如何填充本体没有任何限制;如果数据循环是应用程序的最佳方式,那么它是一种完全有效的方法;当我打印下一个解决方案时,它看起来像(?raitng=“5”)->(?Comment=)(?review=“Display is great!”)->[Root]我做错了什么?我可以使用owl本体中定义的对象属性来查询RDF,而不使用RDF数据创建个人吗?是的,但如果没有个人,你就不会得到结果。这意味着我必须循环数据并创建个人。如何填充你的本体没有任何限制;如果数据循环是应用程序的最佳方式,那么它是一种完全有效的方法;当我打印下一个解决方案时,它看起来像(?raitng=“5”)->(?Comment=)(?review=“Display is great!”)->[Root]我做错了什么?
<?xml version="1.0"?>
<rdf:RDF
      xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
      xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
      xmlns:foaf="http://xmlns.com/foaf/0.1/"
      xmlns:cmnt="http://review-analyzer.local/ontologies/reviews_2.owl#"
      xmlns:admin="http://webns.net/mvcb/">

<cmnt:Comment rdf:ID="me">
    <cmnt:review>Great one!</cmnt:review>
    <cmnt:raitng>5</cmnt:raitng>
    <cmnt:isAbout>
      <cmnt:Display rdf:ID="amoled">
        <cmnt:type>amoled</cmnt:type>
      </cmnt:Display>
    </cmnt:isAbout>
</cmnt:Comment>
</rdf:RDF>
select *
where {
  ?Comment rdf:type ns:Review ;
}