SPARQL 获取类或个体的所有属性

2024-01-03

我想要做的是从Individual1或从一个类获取属性列表, 获取“某物”的所有属性 结果应该是这样的(对于 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>

我认为查询是这样的,(但值的格式不正确,并且某些属性并不重要,例如“类型属性”):

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

SELECT DISTINCT ?property ?value
WHERE {
  css:Secret_Data ?property ?value.
}

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

回答问题要容易得多complete样本数据。如果我们将您提供的数据与适当的命名空间声明捆绑在一起,我们最终会得到如下结果:

<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>

说 Psicology(顺便说一下,在英语中通常拼写为 Psychology)是属性 numPages 的值为 5 的事物类别和属性 numChapters 的值为 1 的事物类别的子类。 Psicology 也是 Libray 的子类。 (这里应该是图书馆吧?)

这些对我来说似乎是奇怪的公理,我想知道是否可能存在某种建模错误。我不确定什么是心理学,但你是说对于任何心理学 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     |
-------------------------
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SPARQL 获取类或个体的所有属性 的相关文章

  • 使用 rdflib 为 sparqlWrapper 的 sparql 'SELECT' 查询的输出构建图表

    我正在尝试根据 SPARQL 查询的结果构建一个图表 为了构建查询 我使用 SparqlWrapper 和 DBpedia 作为知识库 from SPARQLWrapper import SPARQLWrapper JSON from rd
  • 投影中的变量“x”不存在于 GROUP BY 中

    我想计算城市和括号中的内容 但是 我也想获得另一个变量 但是当我将它添加到 SELECT 时 我得到 org openrdf query MalformedQueryException 投影中的变量 region name 不存在于 GRO
  • protege 中的自反属性

    This https ufile io rcv9m是我用 protege 5 创建的本体 如果我做cl1 and cl2不相交 那么本体是不一致的 但是如果我取消选中is friend of反身性的 本体论不再不一致 我的本体有什么问题吗
  • dbpedia SPARQL 查询获取给定城市的某些值

    我确信我想做的事情非常简单 但我似乎无法正确查询 我在数据集中有记录 其中包含城市名称等值 例如 纽约 及其相应的国家 地区代码 例如 美国 我还可以访问完整的国家 地区名称和国家 地区 ISO 代码 我想通过使用 where 子句从 db
  • 为 RDBMS(MySQL 数据库)创建 SPARQL 端点的最佳方法

    我正在 想做 一些链接开放数据集的实验 特别是政府推出的实验 我有一个 RDBMS 更具体地说是 MySQL 我设计它时考虑了语义网络的想法 即我将信息存储为对象 谓词和定义对象的类 反过来 所有对象通过主语 gt 谓词 gt 宾语形式的语
  • 针对 DBPedia 的 SPARQL 查询以获取项目的所有属性值

    我是语义网新手 我想使用 SPARQL 查询从 DBPedia 检索 apple 的所有属性值对 下面我写了查询http dbpedia org sparql http dbpedia org sparql编辑器 但它没有返回任何结果 你能
  • RDF和OWL工作流程问题

    我一直在通过 Protege 查看和使用 OWL 我想知道我是否正确理解 工作流程 和它的想法 从头开始构建数据库 使用 Protege 或等效工具为您的数据生成 OWL 本体 将此模式导出为 RDF 使用定义为三元组中的某些元素的类以及目
  • 如何使用 SPARQL 区分事物和无生命物体

    使用 SPARQL 我可以很轻松地获取有关某些资源的所有相关信息 但我很难弄清楚如何真正区分事物和资源things 其中Thing是所有类的超类 是无生命的物体 例如杯子 勺子 铅笔等 例如 下面是 DBPedia 中的一些无生命物体 Fo
  • 从 RDF 节点拉出字符串

    在使用 Jena 的 SPARQL 查询时 我试图以更易读的格式获取数据 但是我不知道如何以正确的方式提取数据 就目前而言 输出是 http www w3 org TR 2003 PR owl guide 20031209 wine Sau
  • 在SPARQL中使用LIMIT时如何获取结果总数?

    我有一个 SPARQL 查询 它返回结果LIMIT共 20 个 在此查询中 我还想知道结果总数 而无需运行查询两次 一次运行LIMIT和一个没有LIMIT 例如 运行查询时 可能的结果总数为 500 个 其中LIMIT它一次只显示 20 个
  • R 中基因列表(使用 ENTREZID)的基因本体 (GO) 分析?

    我对 GO 分析非常陌生 我有点困惑如何对我的基因列表进行分析 我有一个基因列表 n 10 gene list SYMBOL ENTREZID GENENAME 1 AFAP1 60312 actin filament associated
  • 使用 owl:Class 前缀进行 rdflib 和 xml 序列化

    我想使用owl 我的 RDF 本体的 XML 序列化中的前缀 使用 rdflib 版本 4 1 1 不幸的是我仍然得到序列化rdf Description标签 我查看了有关将命名空间绑定到图表的答案RDFLib XML 序列化中的命名空间前
  • SPARQL 查询在 Fuseki 中有效,但在 Jena TDB 中无效

    我将数据组织在多个图表中 保存三元组的图表很重要 数据结构很复杂 但可以简化如下 我的商店包含蛋糕 其中有不同蛋糕类型的层次结构 所有子类
  • 如何从维基数据属性中获取最新值?

    假设我想获取每个国家 Q6256 及其最近记录的人类发展指数 P1081 值的列表 该国家 地区的人类发展指数属性包含在不同时间点获取的数据点列表 但我只关心最新的数据 此查询不起作用 因为它会为每个国家 地区获取多个结果 每个人类发展指数
  • SHACL 规则中的多路径和存在量化(我应该使用 sh:oneOrMorePath 吗?)

    我想了解如何处理 SHACL 规则中的多路径和存在量化 让我用一个示例本体来举例说明我的问题 本体包括 Approve Legal Result Man 和 Machine 类 所有类都是不相交的 它有两个属性 has theme 和 co
  • 使用 sparql 将 rdf 有序列表从一个图移动到另一个图

    我在 Fuseki 数据集中的 rdf 知识图中有一个列表 我可以用类似的方法获取列表的元素 select webpage where graph
  • 使用 Jena 查询维基数据

    目前 Wikidata 有一个 SPARQL 端点 https query wikidata org https query wikidata org 我想使用 Jena 3 0 1 查询此网站 我使用以下代码 但收到错误消息 端点返回的
  • SPARQL:两个节点之间有路径吗?

    是否有一种好的 SPARQL 查询可以让我回答两个给定节点是否连接在单个 多个 SPARQL 端点上 假设我想检查两个节点是否
  • 如何检查从 SPARQL * 通配符扩展的所有级别的子属性?

    在维基数据中 我想找到一个项目的国家 地区 如果该项目直接有一个国家 则可以直接进行 或者通过爬上 P131 位于行政领土实体 直到找到一个国家 这是查询 item wdt P131 wdt P17 country 上面的查询工作正常 除非
  • Java 中 OWLOntology 到 Jena 模型的转换

    我需要将数据从 OWLOntology 对象 OWL api 的一部分 转换为模型对象 Jena Api 的一部分 我的Java程序应该能够加载owl文件并将其内容发送到fuseki服务器 根据我读到的内容 只有使用 Jena Api 才能

随机推荐

  • 使用 IMultiValueConverter 将多个命令参数传递给 viewModel

    我有以下代码
  • Haskell 列表中的连续数字

    我是 haskell 的新手 我正在尝试一些我之前为 java 完成的编码问题 但是下面的问题让我难住了 基本上 这个想法是编写一个接受整数列表 Int 的函数 确定整数列表中是否包含连续的 1 例如 以下内容的输出将是 输入 func 0
  • Xamarin.forms android权限提示不显示

    我正在使用权限插件 https github com jamesmontemagno PermissionsPlugin作者 詹姆斯 蒙特马尼奥 我基本上复制了该示例 但是在请求它的行之后权限未知 甚至没有对话框显示 var status
  • 通过 javascript 访问车把变量

    我正在为 Express js 框架生成一个把手视图 并且需要从单独的 JavaScript 文件内部访问传递给视图的变量 例如 var foo user name 有人有主意吗 帮手 的价值user name如果您想将其包含在 a 中 则
  • Haskell 你好世界,Eclipse IDE

    我在 eclipseFP 和 Haskell 中使用 hello world 时遇到问题 我有以下代码 module Main where main putStr Hello world 当我用它编译时 ghc exe H1 hs o hw
  • 在非时钟信号上使用上升沿是不好的做法吗?还有其他选择吗?

    我正在研究 VHDL 设计并且它可以工作 但是代码非常丑陋 而且我似乎正在尝试围绕语言的设计来实现我的目标 这一事实让我觉得有些事情是错误的 我对 VHDL 还很陌生 但我已经研究该项目的较小部分近一个月了 所以我有了总体想法 然而 这部分
  • 在 Python 中合并具有不同列的 CSV

    我有数百个大型 CSV 文件 我想将它们合并为一个 但是 并非所有 CSV 文件都包含所有列 因此 我需要根据列名称而不是列位置来合并文件 需要明确的是 在合并的 CSV 中 对于来自不包含该单元格列的行的单元格 值应该为空 我无法使用 p
  • DRF 3 - 使用表创建多对多更新/创建序列化器

    我正在尝试在 DRF 3 中创建一个参考应用程序来演示可以创建 更新模型的嵌套序列化器 当尝试创建嵌套模型时 下面的示例代码会带有 之后的 create 参数必须是映射 而不是列表 的炸弹 我也不清楚如何处理 update 因为在某些情况下
  • 如何使用导航组件管理权限请求代码?

    如何使用导航组件管理权限请求代码 I referred too many website stack links none of it worked still showing deprecated Waring 谷歌参考链接 https
  • 使用 google 字体并仅包含 [A-Z] 和 '&'

    有没有办法使用谷歌字体并只加载它 A Z 和 字符 我想这样做是为了减小大小并缩短加载时间 因为我只会使用基本的拉丁数字和字母 如果必须的话 我可以自己托管字体 并且操作字体包是合法的 但不确定是否需要自托管以及如何操作谷歌的字体包 我已指
  • Maven 中的 Scalatest:JUnit 结果

    我在 Microsoft Visual Studio Team Services 中设置了持续集成服务器 我能够构建我的代码并运行我的测试分级测试 但是 我不知道如何以 JUnit 格式输出结果 我见过很多使用 SBT 的人的结果 但没有人
  • 如何为 Twitter 文章聚合器设计 MongoDB 架构

    我是 MongoDB 的新手 作为练习 我正在构建一个从推文中提取链接的应用程序 这个想法是获取某个主题的推文最多的文章 我很难为这个应用程序设计架构 该应用程序收集推文并保存它们 解析推文中的链接 链接与附加信息 标题 摘录等 一起保存
  • 嵌套命名空间和不明确的符号

    我有一个涉及嵌套命名空间和模板化类的问题 我还能够创建测试用例 它产生与实际代码相同的错误 但更具可读性 使用 VS2012 和 2010 平台工具集编译以下代码会导致错误 namespace A namespace B namespace
  • Ant:重命名文件以包含其 MD5

    对于熟悉 ant 的人来说 这个问题可能非常微不足道 到目前为止我只使用了 ant 的基础知识 我知道如何重命名文件 例如我已经使用
  • 如何使用 javascript 和模板构建 DOM?

    我正在构建一个应用程序 其中大部分 HTML 都是使用 javascript 构建的 DOM 结构是使用从服务器发送的一些 JSON 数据结构构建的 然后客户端代码为该数据构建 UI 我当前的方法是遍历 JSON 数据结构 并调用 scri
  • Django 模型中的 request.user

    我正在使用 Django 模型来创建表单的字段 我希望自动检测并填写用户的用户名 这样我可以将其隐藏在我的表单中 而不是让他们从包含每个人用户名的长列表中选择用户名 为此 我正在使用 current user request user 然后
  • 角度结构指令:用其他组件包装宿主元素

    我有最简单的 Angular 结构指令 import Directive TemplateRef ViewContainerRef from angular core Directive selector hello export clas
  • 重新索引 pandas dataframe 多重索引的子级别

    我有一个时间序列数据框 我想通过试验和测量重新索引它 简单来说 我有这个 value Trial 1 0 13 1 3 2 4 2 3 NaN 4 12 3 5 34 我想把它变成这样 value Trial 1 0 13 1 3 2 4
  • 如何使用 REST API 从 Parse.com 下载文件?

    我发现这个问题在Parse com 文件下载问题 https stackoverflow com questions 14907562 how to download parse com file type using rest api但是
  • SPARQL 获取类或个体的所有属性

    我想要做的是从Individual1或从一个类获取属性列表 获取 某物 的所有属性 结果应该是这样的 对于 Secret Data Asset has Confidentiality Importance High Asset has Av