- From: Sven R. Kunze <sven.kunze@informatik.tu-chemnitz.de>
- Date: Wed, 12 Jun 2013 00:38:39 +0200
- To: Pat Hayes <phayes@ihmc.us>
- Cc: "public-lod@w3.org" <public-lod@w3.org>
Zitat von Pat Hayes <phayes@ihmc.us>:
> On Jun 11, 2013, at 2:03 PM, Sven R.Kunze wrote:
>
>> Yes, from the wording, I do agree with you.
>> However, as the entailment rule says, your conclusion is correct,
>> but the other way round might not. That you know, that there is
>> something for that particular instance, does not imply the
>> necessity for each instance of that rdf:type.
>> That is, when you know x bears a p relation (but nothing more) you
>> cannot infer that each instance of that type of x bears it.
>
> I,m not sure what you mean by 'that type of x', but indeed, you
> can't infer anything about something else of a given type just from
> a single fact about one entity.
And that could be problem depending on what a data designer wants to
achieve/express.
>>
>> Another point, which came to my mind lately, it the challenge of
>> updating that particular blank node. It’d required one step more to
>> check whether there is such blank node and then removing it, when
>> it is to be replaced by a named entity.
>
> You don't need to remove it. It is still true (though now redundant)
> when you have the named entity.
Yes, true.
>> And that only the first time. This might be a rather complex code.
>
> Its pretty simple in practice (though its theoretical complxity is
> hard, the hard cases never arise in practice.) The operation is
> called 'leaning' (in the sense of "making lean", ie removing
> redundancies)
Yes, I read about lean graphs in the spec (lean graphs result from
leaning?). Do you know which tools can do that?
>>
>> Btw: one idea of getting rid of the rdfs:RequiredProperty class
>> could be including that rule into your schema definition (of course
>> for each (A, p) that it applies to):
>>
>> { ?x rdf:type A } => { ?x p [] }
>>
>> I am not sure what inferring engines actually do when it comes to
>> inferring blank nodes with no further data within. So, when a
>> particular x already have a p relation, maybe that engine dismiss
>> the inferred blank node p relation.
>
> Yes, it would be redundant in that case. Some engines simply leave
> it alone, others check for redundancies and remove them.
Good to know. Some examples?
>>
>> Nevertheless, the primary problem with the blank node solution is
>> the blank node itself and the missing way of pulling schema data
>> out of it
>
> ? Im not sure what you mean by pulling schema data. You can't pull
> data from an IRI either (can you?)
Hmmm, I maybe meant separating the schema-related data and the
instance-related data in such way that the schema-related data can
express the given use-case of representing required property relations.
>
> Pat
>
>> ; unless you can use something like N3.
>>
>> Sven
>>
>>
>> Von: Pat Hayes
>> Gesendet: Dienstag, 11. Juni 2013 00:00
>> An: Sven R. Kunze
>>
>>
>> On Jun 10, 2013, at 2:15 PM, Sven R. Kunze wrote:
>>
>> >>> 2)
>> >>>> - value uknown (it should be there but the source doesn't know it)
>> >>> Actually that piece of information could be written down in a
>> RDF Schema graph like this:
>> >>
>> >> It can be written far more simply in RDF just by using a blank node:
>> >>
>> >> :a :p _:x .
>> >
>> > Very interesting and very simple!
>> >
>> >
>> > However, I am not quite sure, whether or not it has the same semantics.
>>
>> Well, the RDF semantics of this is that something exists that :a
>> bears the :p relation to, but you don't (yet) know what it is.
>> Isn't that what you said, above?
>>
>> > The schema part might not be able to carry the blank node for
>> each possible future instance.
>> >
>> > I could even imagine an entailment rule like this:
>> > { p rdf:type rdfs:RequiredProperty; rdfs:domain A. x rdf:type A }
>> => { x p [] }
>> > but the other way round might not sensible, I think.
>> >
>> >
>> > Cheers,
>> > Sven
>> >
>> >
>> >>
>> >> Pat Hayes
>> >>
>> >>>
>> >>> #schema
>> >>> :A a rdfs:Class.
>> >>> :p a rdf:Property; a rdfs:RequiredProperty; rdfs:domain :A.
>> >>>
>> >>> #instance
>> >>> :x a :A; :p :y. # << :x is carries required property
>> >>> :z a :A. # << :z does not carry required property
>> >>>
>> >>> Point here is, that instances cannot "decide" whether or not
>> they have to carry properties or not. The fact, that :z should
>> carry a :p property but doesn't consists of two distince pieces of
>> information:
>> >>> - :z should carry :p <<< schema information
>> >>> - :z does not carry :p <<< instance information
>> >>>
>> >>>
>> >>> 3)
>> >>>> - value doesn't exist (e.g. year of death for a person alive)
>> >>> I am not quite sure whether this variant is a distinct one or
>> either falls into 1) or 2).
>> >>> Maybe that use case is inappropriate to explain what you really
>> mean by "doesn't exist".
>> >>> I tend to say that for such instances of persons they could
>> carry rdfs:inapplicableProperty properties for the properties in
>> question.
>> >>>
>> >>>
>> >>> 4)
>> >>>> - value is witheld (access not allowed)
>> >>> Interesting case, I'd say. I think here we should talk about
>> access granularity. First, I'd like to have a real usage scenario.
>> Second, I might have security consideration: it is really necessary
>> that we tell an untrusted requester whether we don't have that
>> information or we do not want to give it to him? Third, taken that
>> under consideration what could a trustworthy requester do with such
>> information?
>> >>>
>> >>> Besides such considerations, I think in this case we should
>> rethink the way we deliver data. It is not really the subject :s
>> which is in a relationship :p of an value that signifies
>> "being-withheld", so:
>> >>> :x :p rdfs:noAccess, rdfs:withheld, ...
>> >>> doesn't seem appropriate to me.
>> >>>
>> >>> It is the requester that influences the delivered data, not the subject:
>> >>> @prefix :sec <...> <<< security namespace
>> >>>
>> >>> [] a sec:PropertyWithheld;
>> >>> sec:requester <....>;
>> >>> # sec:instance :s; << optional as generally all subjects
>> with that particular property can be withheld
>> >>> sec:property :p.
>> >>>
>> >>> ----------------------------------------------------------------
>> >>>
>> >>> What about composite values like in
>> >>> :foo :aProp [a :nullableValue; rdf:value "value"] ;
>> >>> :bProp [a :nullableValue; :reason :notAvailable ].
>> >>>
>> >>> First of all, I do not really know why we have to merge schema
>> information into instance data.
>> >>> Second, there is a second level of graph traversal, which I
>> preferably would like to avoid as it clutters up queries and the
>> triple store.
>> >>> Third, most of your given examples are schema design issues
>> (there might be more examples) can be solved without introducing a
>> clumsy composite value.
>> >>> Forth, a composite values disturbs the data design when there
>> are "normal" values which can be expressed via "normal" literals,
>> URIs, bnodes. That is, the access queries differ from property to
>> property which should be avoided as it complifies(??) a lot.
>> >>>
>> >>> Cheers,
>> >>> Sven
>> >>>
>> >>>
>> >>>
>> >>>
>> >>>
>> >>
>> >> ------------------------------------------------------------
>> >> IHMC (850)434 8903 or (650)494 3973
>> >> 40 South Alcaniz St. (850)202 4416 office
>> >> Pensacola (850)202 4440 fax
>> >> FL 32502 (850)291 0667 mobile
>> >> phayesAT-SIGNihmc.us http://www.ihmc.us/users/phayes
>> >
>> >
>> > --
>> > Sven R. Kunze
>> > Chemnitz University of Technology
>> > Department of Computer Science
>> > Distributed and Self-organizing Systems Group
>> > Straße der Nationen 62
>> > D-09107 Chemnitz
>> > Germany
>> > E-Mail: sven.kunze@informatik.tu-chemnitz.de
>> > WWW: http://vsr.informatik.tu-chemnitz.de/people/kunze
>> > Phone: +49 371 531 33882
>> >
>> >
>> >
>>
>> ------------------------------------------------------------
>> IHMC (850)434 8903 or (650)494 3973
>> 40 South Alcaniz St. (850)202 4416 office
>> Pensacola (850)202 4440 fax
>> FL 32502 (850)291 0667 mobile
>> phayesAT-SIGNihmc.us http://www.ihmc.us/users/phayes
>
> ------------------------------------------------------------
> IHMC (850)434 8903 or (650)494 3973
> 40 South Alcaniz St. (850)202 4416 office
> Pensacola (850)202 4440 fax
> FL 32502 (850)291 0667 mobile
> phayesAT-SIGNihmc.us http://www.ihmc.us/users/phayes
--
Sven R. Kunze
Chemnitz University of Technology
Department of Computer Science
Distributed and Self-organizing Systems Group
Straße der Nationen 62
D-09107 Chemnitz
Germany
E-Mail: sven.kunze@informatik.tu-chemnitz.de
WWW: http://vsr.informatik.tu-chemnitz.de/people/kunze
Phone: +49 371 531 33882
Received on Tuesday, 11 June 2013 22:39:06 UTC