我正在研究语义网,我想知道:写一个限制的语义是否有任何区别:
:Person
a owl:Class ;
rdfs:subClassOf
[ a owl:Restriction ;
owl:onProperty :hasParent ;
owl:allValuesFrom :Person
] .
Run Code Online (Sandbox Code Playgroud)
并编写范围限制,如:
:hasParent rdfs:range :Person.
Run Code Online (Sandbox Code Playgroud)
在我看来,它意味着相同:父母必须有一种人.没有任何区别吗?
是否存在任何算法或者是否存在图形变换的名称,其中可以将边缘变换为顶点并将顶点变换为边缘?那么我们可以从中得到一个新的图形或类似于这个问题的任何东西?我不确定它是否真的有意义,但如果你能给我任何关于这样一个问题的暗示,我会很高兴的.
我正在使用Jersey编写REST服务.我有一个带有注释的抽象类Promotion:
@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS)
Run Code Online (Sandbox Code Playgroud)
多亏了这一点,当我返回一个对象列表时:
@GET
@Produces(MediaType.APPLICATION_JSON)
@Path("promotions/")
public List<Promotion> getClosestPromotions() {
List<Promotion> promotions = getPromotions(); //here I get some objects
return promotions;
}
Run Code Online (Sandbox Code Playgroud)
我为该列表中的每个对象获取一个带有"@class"字段的Json字符串.但问题是如果我返回一个Response:
@GET
@Produces(MediaType.APPLICATION_JSON)
@Path("promotions/")
public Response getClosestPromotions() {
List<Promotion> promotions = getPromotions(); //here I get some objects
return Response.ok().entity(promotions).build();
}
Run Code Online (Sandbox Code Playgroud)
我得到几乎相同的列表,但没有额外的"@class"字段.为什么这样,我该怎么做才能获得一个带有"@class"字段的列表在Response中返回一个列表?顺便说一下,令人惊讶的是,当我返回一个只有作为实体给出的一个Promotion对象的Response并且我得到那个"@class"字段时它才起作用.
我想从文件中读取文本并将其返回到函数中.所以这是我的代码的重要部分:
function getFileRequest(id, contentType, callback) {
var val = "x";
if (window.File && window.FileReader && window.FileList && window.Blob) {
var element = document.getElementById(id);
var file = element.files[0];
if(file != null) {
if(file.type.match("text/xml")){
var r;
r = new FileReader();
r.onload = function (e) {
val = e.target.result;
}
r.readAsText(file);
}
else
alert("Wrong file format");
}
} else {
alert('The File APIs are not fully supported by your browser.');
}
alert(val);
if(val == null)
return "";
else
return getRequestBody(id,contentType,val);
}
Run Code Online (Sandbox Code Playgroud)
我想将文本传递给名为"val"的变量.但是,至少在我看来,alert(val)总是显示默认的"x",因为可能它不等待onload函数被执行.我是对的吗?那么如何才能访问该文本?有没有办法等待执行?