[英]What should the JSON object that is returned as a datasource to jqueryui autocomplete look like?
[英]What does simple JSON object format look like in RDF and OWL/WOL?
我有以下JSON对象...
var people = [
{"LName": "Smith", "FName": "Jane", "Gender": "Female", "Age": 20},
{"LName": "Doe", "FName": "John", "Gender": "Male", "Age": 40},
{"LName": "Smith", "FName": "Mary", "Gender": "Female", "Age": 29}
];
请注意,以上表示只是“第一范式(1NF)”,表示三(3)个非规范化对象,其中每个对象都是“ People”表中的行,其列名称为“ LName”,“ FName”,“ Gender”和“年龄”。
鉴于以上所述,以上内容在转换/转换为OWL / WOL后会是什么样?
没有单一的方法可以做到这一点。 可以以多种方式在RDF或OWL中对相同信息进行编码。 这完全取决于您要编码和保留的信息类型。 如果只需要有关三个人的信息,则可以使用FOAF词汇对信息进行编码。 或者,如果您想保留JSON语义,则可以使用JSON结构的编码。 或者,您可以定义具有所需属性的本体,并根据该本体进行编码。 这是前两种方法的外观。 当然,您显然可以提出其他建议。
如果使用FOAF词汇表(严格来说,它不是OWL,而是定义了RDF词汇表),则可能会得到如下所示的结果:
prefix foaf: <http://xmlns.com/foaf/0.1/>
[] a foaf:Person ;
foaf:firstName "Smith" ;
foaf:lastName "Jane" ;
foaf:gender "Female" ;
foaf:age 20 .
[] a foaf:Person ;
foaf:firstName "Doe" ;
foaf:lastName "John" ;
foaf:gender "Male" ;
foaf:age 40 .
[] a foaf:Person ;
foaf:firstName "Smith" ;
foaf:lastName "Mary" ;
foaf:gender "Female" ;
foaf:age 29 .
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:foaf="http://xmlns.com/foaf/0.1/">
<foaf:Person>
<foaf:firstName>Smith</foaf:firstName>
<foaf:lastName>Mary</foaf:lastName>
<foaf:gender>Female</foaf:gender>
<foaf:age rdf:datatype="http://www.w3.org/2001/XMLSchema#integer"
>29</foaf:age>
</foaf:Person>
<foaf:Person>
<foaf:firstName>Doe</foaf:firstName>
<foaf:lastName>John</foaf:lastName>
<foaf:gender>Male</foaf:gender>
<foaf:age rdf:datatype="http://www.w3.org/2001/XMLSchema#integer"
>40</foaf:age>
</foaf:Person>
<foaf:Person>
<foaf:firstName>Smith</foaf:firstName>
<foaf:lastName>Jane</foaf:lastName>
<foaf:gender>Female</foaf:gender>
<foaf:age rdf:datatype="http://www.w3.org/2001/XMLSchema#integer"
>20</foaf:age>
</foaf:Person>
</rdf:RDF>
如果您想保留更多的JSON信息(例如,您有一个数组,它具有三个元素等),则可以执行以下操作:
prefix json: <urn:json:>
[] a json:Array ;
json:elements (
[ json:hasProperty [ json:propertyName "LName" ;
json:propertyValue "Smith" ] ,
[ json:propertyName "FName" ;
json:propertyValue "Jane" ] ,
[ json:propertyName "Gender" ;
json:propertyValue "Female" ] ,
[ json:propertyName "Age" ;
json:propertyValue 20 ] ]
[ json:hasProperty [ json:propertyName "LName" ;
json:propertyValue "Dow" ] ,
[ json:propertyName "FName" ;
json:propertyValue "John" ] ,
[ json:propertyName "Gender" ;
json:propertyValue "Male" ] ,
[ json:propertyName "Age" ;
json:propertyValue 40 ] ]
[ json:hasProperty [ json:propertyName "LName" ;
json:propertyValue "Smith" ] ,
[ json:propertyName "FName" ;
json:propertyValue "Mary" ] ,
[ json:propertyName "Gender" ;
json:propertyValue "Female" ] ,
[ json:propertyName "Age" ;
json:propertyValue 29 ] ]
) .
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:json="urn:json:">
<json:Array>
<json:elements rdf:parseType="Collection">
<rdf:Description>
<json:hasProperty rdf:parseType="Resource">
<json:propertyName>LName</json:propertyName>
<json:propertyValue>Smith</json:propertyValue>
</json:hasProperty>
<json:hasProperty rdf:parseType="Resource">
<json:propertyName>FName</json:propertyName>
<json:propertyValue>Jane</json:propertyValue>
</json:hasProperty>
<json:hasProperty rdf:parseType="Resource">
<json:propertyName>Gender</json:propertyName>
<json:propertyValue>Female</json:propertyValue>
</json:hasProperty>
<json:hasProperty rdf:parseType="Resource">
<json:propertyName>Age</json:propertyName>
<json:propertyValue rdf:datatype="http://www.w3.org/2001/XMLSchema#integer"
>20</json:propertyValue>
</json:hasProperty>
</rdf:Description>
<rdf:Description>
<json:hasProperty rdf:parseType="Resource">
<json:propertyName>LName</json:propertyName>
<json:propertyValue>Dow</json:propertyValue>
</json:hasProperty>
<json:hasProperty rdf:parseType="Resource">
<json:propertyName>FName</json:propertyName>
<json:propertyValue>John</json:propertyValue>
</json:hasProperty>
<json:hasProperty rdf:parseType="Resource">
<json:propertyName>Gender</json:propertyName>
<json:propertyValue>Male</json:propertyValue>
</json:hasProperty>
<json:hasProperty rdf:parseType="Resource">
<json:propertyName>Age</json:propertyName>
<json:propertyValue rdf:datatype="http://www.w3.org/2001/XMLSchema#integer"
>40</json:propertyValue>
</json:hasProperty>
</rdf:Description>
<rdf:Description>
<json:hasProperty rdf:parseType="Resource">
<json:propertyName>LName</json:propertyName>
<json:propertyValue>Smith</json:propertyValue>
</json:hasProperty>
<json:hasProperty rdf:parseType="Resource">
<json:propertyName>FName</json:propertyName>
<json:propertyValue>Mary</json:propertyValue>
</json:hasProperty>
<json:hasProperty rdf:parseType="Resource">
<json:propertyName>Gender</json:propertyName>
<json:propertyValue>Female</json:propertyValue>
</json:hasProperty>
<json:hasProperty rdf:parseType="Resource">
<json:propertyName>Age</json:propertyName>
<json:propertyValue rdf:datatype="http://www.w3.org/2001/XMLSchema#integer"
>29</json:propertyValue>
</json:hasProperty>
</rdf:Description>
</json:elements>
</json:Array>
</rdf:RDF>
它可以采用多种形式,具体取决于您要如何对数据建模。
例如,您可以决定使用一些现有的词汇或本体(例如FOAF),或者创建自己的自制本体-在这种情况下,您可以选择定义对所涉及属性的限制(例如,功能,类型等)。 ),甚至提供其他规则以允许在分析数据时采用不同形式的推理(例如,将具有“女性”性别的人自动分类为Female
类别)。
但是,通常,在创建本体时,您需要使用两个“部分”:定义模型的各种限制/类/属性的术语(TBox),以及根据实例化事物的断言(ABox)。该模型。
跳过以上大部分内容(某些基本属性限制除外)的裸露骨头表示(使用Turtle语法)可能看起来像这样:
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix : <http://foo.bar#> .
# TBox
:Person a owl:Class .
:first_name a owl:DatatypeProperty;
rdfs:domain :Person;
rdfs:range xsd:string .
:last_name a owl:DatatypeProperty;
rdfs:domain :Person;
rdfs:range xsd:string .
:gender a owl:DatatypeProperty;
rdfs:domain :Person;
rdfs:range xsd:string .
:age a owl:DatatypeProperty;
rdfs:domain :Person;
rdfs:range xsd:integer .
# ABox
:person_1 a :Person;
:last_name "Smith;
:first_name "Jane";
:gender "female";
:age 20.
:person_2 a :Person;
:last_name "Doe;
:first_name "John";
:gender "male";
:age 40.
:person_3 a :Person;
:last_name "Smith;
:first_name "Mary";
:gender "female";
:age 29.
作为进一步建模的示例,您可以决定:gender
只能采用值“ female”或“ male”。 在这种情况下,定义:gender
的另一种方法是:
:gender a owl:DatatypeProperty;
rdfs:range [
a rdfs:Datatype;
owl:oneOf ( "Female" "Male")
] .
我想您也可以将gender
定义为功能属性(每个Person
实例只有一个唯一值)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.