SPARQL从类或个人获取所有属性

Angelcazares

我想做的是从Individual1或一个类中获取属性列表,从“ something”中获取所有属性结果应该是这样的(对于Secret_Data):

| Asset_has_Confidentiality_Importance | High                                       |
| Asset_has_Availability_Importance....| Moderate                                   |
| Asset_has_Integrity_Importance.......| Moderate                                   |
| Asset_threatenedBy_ThreatEvent.......| Compromise_sensitive_information           |
| Asset_threatenedBy_ThreatEvent.......| Disclosure_of_sensitive_information        |
| Asset_threatenedBy_ThreatEvent.......| Exploit_exposed_unauthorized_information   |
| Asset_threatenedBy_ThreatEvent.......| Integrity_loss_by_corrupting_critital_data |
<owl:NamedIndividual rdf:about="&securityOntology_ITESM_UC3M;Secret_Data">
    <rdf:type rdf:resource="&securityOntology_ITESM_UC3M;Data"/>
    <Asset_has_Confidentiality_Importance rdf:datatype="&xsd;string">High</Asset_has_Confidentiality_Importance>
    <Asset_has_Availability_Importance rdf:datatype="&xsd;string">Moderate</Asset_has_Availability_Importance>
    <Asset_has_Integrity_Importance rdf:datatype="&xsd;string">Moderate</Asset_has_Integrity_Importance>
    <Asset_threatenedBy_ThreatEvent rdf:resource="&securityOntology_ITESM_UC3M;Compromise_sensitive_information"/>
    <Asset_threatenedBy_ThreatEvent rdf:resource="&securityOntology_ITESM_UC3M;Disclosure_of_sensitive_information"/>
    <Asset_threatenedBy_ThreatEvent rdf:resource="&securityOntology_ITESM_UC3M;Exploit_exposed_unauthorized_information"/>
    <Asset_threatenedBy_ThreatEvent rdf:resource="&securityOntology_ITESM_UC3M;Integrity_loss_by_corrupting_critital_data"/>
    <Asset_threatenedBy_ThreatEvent rdf:resource="&securityOntology_ITESM_UC3M;Obtain_unauthorized_access"/>
</owl:NamedIndividual>

我认为查询是这样的(但该值的格式不正确,并且某些属性不是importart,例如“ type property”):

PREFIX css:<http://www.semanticweb.org/evalues/ontologies/2014/3/securityOntology_ITESM_UC3M#>

SELECT DISTINCT ?property ?value
WHERE {
  css:Secret_Data ?property ?value.
}
约书亚·泰勒(Joshua Taylor)

回答最新问题(有关个人的查询)

使用完整的样本数据来回答问题要容易得多如果我们使用适当的名称空间声明将您提供的数据捆绑在一起,那么最终将得到如下结果:

<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:owl="http://www.w3.org/2002/07/owl#"
    xmlns="http://stackoverflow.com/q/23223447/1281433/">
  <owl:NamedIndividual rdf:about="http://stackoverflow.com/q/23223447/1281433/Secret_Data">
    <Asset_has_Availability_Importance rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
    >Moderate</Asset_has_Availability_Importance>
    <rdf:type rdf:resource="http://stackoverflow.com/q/23223447/1281433/Data"/>
    <Asset_threatenedBy_ThreatEvent rdf:resource="http://stackoverflow.com/q/23223447/1281433/Integrity_loss_by_corrupting_critital_data"/>
    <Asset_has_Integrity_Importance rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
    >Moderate</Asset_has_Integrity_Importance>
    <Asset_threatenedBy_ThreatEvent rdf:resource="http://stackoverflow.com/q/23223447/1281433/Obtain_unauthorized_access"/>
    <Asset_threatenedBy_ThreatEvent rdf:resource="http://stackoverflow.com/q/23223447/1281433/Disclosure_of_sensitive_information"/>
    <Asset_threatenedBy_ThreatEvent rdf:resource="http://stackoverflow.com/q/23223447/1281433/Compromise_sensitive_information"/>
    <Asset_has_Confidentiality_Importance rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
    >High</Asset_has_Confidentiality_Importance>
    <Asset_threatenedBy_ThreatEvent rdf:resource="http://stackoverflow.com/q/23223447/1281433/Exploit_exposed_unauthorized_information"/>
  </owl:NamedIndividual>
</rdf:RDF>

在Turtle序列化中查看此内容通常会很有帮助,因为它看起来更像查询。数据是一样的,查询当然会以序列化方式针对数据进行。

@prefix :      <http://stackoverflow.com/q/23223447/1281433/> .
@prefix owl:   <http://www.w3.org/2002/07/owl#> .
@prefix rdf:   <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .

:Secret_Data  a  owl:NamedIndividual , :Data ;
        :Asset_has_Availability_Importance
                "Moderate"^^<http://www.w3.org/2001/XMLSchema#string> ;
        :Asset_has_Confidentiality_Importance
                "High"^^<http://www.w3.org/2001/XMLSchema#string> ;
        :Asset_has_Integrity_Importance
                "Moderate"^^<http://www.w3.org/2001/XMLSchema#string> ;
        :Asset_threatenedBy_ThreatEvent
                :Integrity_loss_by_corrupting_critital_data , :Obtain_unauthorized_access , :Disclosure_of_sensitive_information , :Compromise_sensitive_information , :Exploit_exposed_unauthorized_information .

您可以使用如下查询:

prefix :    <http://stackoverflow.com/q/23223447/1281433/>
prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
prefix owl: <http://www.w3.org/2002/07/owl#>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>

select distinct ?property ?value where {
  :Secret_Data ?property ?value .
}
---------------------------------------------------------------------------------------
| property                              | value                                       |
=======================================================================================
| rdf:type                              | owl:NamedIndividual                         |
| :Asset_has_Availability_Importance    | "Moderate"^^xsd:string                      |
| rdf:type                              | :Data                                       |
| :Asset_threatenedBy_ThreatEvent       | :Integrity_loss_by_corrupting_critital_data |
| :Asset_has_Integrity_Importance       | "Moderate"^^xsd:string                      |
| :Asset_threatenedBy_ThreatEvent       | :Obtain_unauthorized_access                 |
| :Asset_threatenedBy_ThreatEvent       | :Disclosure_of_sensitive_information        |
| :Asset_threatenedBy_ThreatEvent       | :Compromise_sensitive_information           |
| :Asset_has_Confidentiality_Importance | "High"^^xsd:string                          |
| :Asset_threatenedBy_ThreatEvent       | :Exploit_exposed_unauthorized_information   |
---------------------------------------------------------------------------------------

如果您不想rdf:type在其中使用filter ?property != rdf:type可以使用,或者如果要排除多个属性,请使用filter ( ?property NOT IN ( rdf:type … ) )

prefix :    <http://stackoverflow.com/q/23223447/1281433/>
prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
prefix owl: <http://www.w3.org/2002/07/owl#>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>

select distinct ?property ?value where {
  :Secret_Data ?property ?value .
  filter ( ?property not in ( rdf:type ) )
}
---------------------------------------------------------------------------------------
| property                              | value                                       |
=======================================================================================
| :Asset_has_Availability_Importance    | "Moderate"^^xsd:string                      |
| :Asset_threatenedBy_ThreatEvent       | :Integrity_loss_by_corrupting_critital_data |
| :Asset_has_Integrity_Importance       | "Moderate"^^xsd:string                      |
| :Asset_threatenedBy_ThreatEvent       | :Obtain_unauthorized_access                 |
| :Asset_threatenedBy_ThreatEvent       | :Disclosure_of_sensitive_information        |
| :Asset_threatenedBy_ThreatEvent       | :Compromise_sensitive_information           |
| :Asset_has_Confidentiality_Importance | "High"^^xsd:string                          |
| :Asset_threatenedBy_ThreatEvent       | :Exploit_exposed_unauthorized_information   |
---------------------------------------------------------------------------------------

回答原始问题(有关类的查询)

在问题的原始版本中,您给出了本体的图像,并要求其后的结果:

在此处输入图片说明

| numberChapters  | 1 |
| numberPages     | 5 |

在该本体的RDF / XML序列化中(因为从问题中删除了),对Psicology类的描述如下:

<owl:Class rdf:about="http://webprotege.stanford.edu/RiMIUJzVuVHCr4Ke4TkFwX">
    <rdfs:label>Psicology</rdfs:label>
    <rdfs:subClassOf rdf:resource="http://webprotege.stanford.edu/RDHbMG5sh4tyJ6ZoHwxLBHk"/>
    <rdfs:subClassOf>
        <owl:Restriction>
            <owl:onProperty rdf:resource="http://webprotege.stanford.edu/R9DdxIZDrtXApiHoBJ6NmAy"/>
            <owl:hasValue rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">5</owl:hasValue>
        </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
        <owl:Restriction>
            <owl:onProperty rdf:resource="http://webprotege.stanford.edu/R8WDOefPWzIoTChbjV31ela"/>
            <owl:hasValue rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">1</owl:hasValue>
        </owl:Restriction>
    </rdfs:subClassOf>
</owl:Class>

或更容易理解的Turtle表示法:

<http://webprotege.stanford.edu/RiMIUJzVuVHCr4Ke4TkFwX>
        a                owl:Class ;
        rdfs:label       "Psicology" ;
        rdfs:subClassOf  <http://webprotege.stanford.edu/RDHbMG5sh4tyJ6ZoHwxLBHk> ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    5 ;
                           owl:onProperty  <http://webprotege.stanford.edu/R9DdxIZDrtXApiHoBJ6NmAy>
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    1 ;
                           owl:onProperty  <http://webprotege.stanford.edu/R8WDOefPWzIoTChbjV31ela>

表示,心理学(通常用英语拼写为Psychology)是事物类的子类,该事物类的属性numPages的值为5,而事物的属性numChapters的值为1。心理学也是Libray的子​​类。(这应该是图书馆吗?)

这些对我来说似乎是奇怪的公理,我想知道是否可能发生某种建模错误。我不确定什么是Psicology,但是您是说对于任何Psicology p,都是numPages(p,5)和numChapters(p,1)。那真的是您想要做的吗?

无论如何,只要有您的数据,我们就可以检索您想要的结果。查看Turtle序列化非常有用,因为它与SPARQL查询语法非常相似。您想要的查询是:

prefix owl:   <http://www.w3.org/2002/07/owl#> 
prefix :      <http://webprotege.stanford.edu/project/Bnag2Z5E4j78tB27NnLq1L#> 
prefix rdfs:  <http://www.w3.org/2000/01/rdf-schema#> 

select ?property ?value where {
  ?class rdfs:label "Psicology" ;
         rdfs:subClassOf [ owl:hasValue ?value ; 
                           owl:onProperty [ rdfs:label ?property ] ] .
}
-------------------------
| property      | value |
=========================
| "numChapters" | 1     |
| "numPages"    | 5     |
-------------------------

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

sparql:如何获取个人的所有数据属性断言

来自分类Dev

如何获取属于类的个人,对象属性和数据属性,并且在sparql中具有特定的批注

来自分类Dev

SPARQL-如何从链接的个人获取个人数据属性

来自分类Dev

获取ADLDS类的所有可写属性

来自分类Dev

无法获取DBpedia类的所有属性

来自分类Dev

获取sencha类的所有静态属性

来自分类Dev

从类中获取所有静态属性

来自分类Dev

如何在sparql中获取个人数据属性值

来自分类Dev

SPARQL查询以获取所有“叶”类/最低级别的类

来自分类Dev

使用sparql显示具有多个属性的个人

来自分类Dev

SPARQL查询以获取定义了名称空间前缀的所有类标签

来自分类Dev

获取所有可应用于类的属性

来自分类Dev

如何仅在类中获取所有属性名称

来自分类Dev

如何编写代码以获取类的所有属性?

来自分类Dev

从 C# 中的类中获取所有属性名称

来自分类Dev

Swift 获取泛型类中的所有属性

来自分类Dev

获取类属性中的所有类名

来自分类Dev

如何提取/获取本体中的所有术语(类/属性)

来自分类Dev

如何从多个类中获取所有相同的属性?

来自分类Dev

针对DBPedia的SPARQL查询以获取该项目的所有属性值

来自分类Dev

如何获得属于一个类的个人,对象属性和数据属性,并且在sparql中具有特定注释

来自分类Dev

获取类的“所有者”,如果它是另一个类的属性

来自分类Dev

获取所有属性名称

来自分类Dev

如何从mysqli中获取个人所有在php中的记录

来自分类Dev

SPARQL:返回所有由指定或等效类满足的交点

来自分类Dev

SPARQL:选择类别的所有资源主题的属性

来自分类Dev

Wikidata SPARQL查询。并非结果中的所有属性

来自分类Dev

使用C#中的Selenium获取具有特定类的所有元素的属性值的列表

来自分类Dev

选择器,用于获取具有特定属性和类的所有标签

Related 相关文章

  1. 1

    sparql:如何获取个人的所有数据属性断言

  2. 2

    如何获取属于类的个人,对象属性和数据属性,并且在sparql中具有特定的批注

  3. 3

    SPARQL-如何从链接的个人获取个人数据属性

  4. 4

    获取ADLDS类的所有可写属性

  5. 5

    无法获取DBpedia类的所有属性

  6. 6

    获取sencha类的所有静态属性

  7. 7

    从类中获取所有静态属性

  8. 8

    如何在sparql中获取个人数据属性值

  9. 9

    SPARQL查询以获取所有“叶”类/最低级别的类

  10. 10

    使用sparql显示具有多个属性的个人

  11. 11

    SPARQL查询以获取定义了名称空间前缀的所有类标签

  12. 12

    获取所有可应用于类的属性

  13. 13

    如何仅在类中获取所有属性名称

  14. 14

    如何编写代码以获取类的所有属性?

  15. 15

    从 C# 中的类中获取所有属性名称

  16. 16

    Swift 获取泛型类中的所有属性

  17. 17

    获取类属性中的所有类名

  18. 18

    如何提取/获取本体中的所有术语(类/属性)

  19. 19

    如何从多个类中获取所有相同的属性?

  20. 20

    针对DBPedia的SPARQL查询以获取该项目的所有属性值

  21. 21

    如何获得属于一个类的个人,对象属性和数据属性,并且在sparql中具有特定注释

  22. 22

    获取类的“所有者”,如果它是另一个类的属性

  23. 23

    获取所有属性名称

  24. 24

    如何从mysqli中获取个人所有在php中的记录

  25. 25

    SPARQL:返回所有由指定或等效类满足的交点

  26. 26

    SPARQL:选择类别的所有资源主题的属性

  27. 27

    Wikidata SPARQL查询。并非结果中的所有属性

  28. 28

    使用C#中的Selenium获取具有特定类的所有元素的属性值的列表

  29. 29

    选择器,用于获取具有特定属性和类的所有标签

热门标签

归档