w3c / dx-prof

The Profiles Vocabulary
https://w3c.github.io/dx-prof/prof/
Other
5 stars 2 forks source link

prof:isTransitiveProfileOf needs more convincing case and/or example #8

Open aisaac opened 5 years ago

aisaac commented 5 years ago

As in the title... This came to mind while writing the ESWC paper. The property is not super-clear in https://w3c.github.io/dxwg/profilesont/ and there's no example for it.

Actually one could question whether it is needed, or whether it is just a "utility properties" to be derived from other statements, the same way that skos:broaderTransitive is in SKOS. That is to say, that they could be kept for amateurs only ;-) and put in an "advanced" section.

andrea-perego commented 5 years ago

+1 to @aisaac .

I am actually unsure how prof:isTransitiveProfileOf can be safely implemented. E.g., this would require at least all profiles in the "chain" to be under the same governance and design rules. And also in this case profile transitiveness may not be granted.

Do we have a use case for this property?

kcoyle commented 5 years ago

w3c/dx-prof#2 goes into this as well, even though the immediate thrust was its name. And this links to many of the comments by @agreiner about the dangers of inheritance.

rob-metalinkage commented 5 years ago

This predicate was included because @agreiner argued we needed a mechanism to have a "flat representation" - not that inheritance wasnt a fundamental requirement or had any specific "dangers" - its a convenience we dont specify how should be used.

proposed action: include in examples.

aisaac commented 5 years ago

The proposal to add an example sounds of course good to me :-) The beginning of explanation for the motivation sounds quite appropriate too.

nicholascar commented 5 years ago

Here is a candidate example. If we can agree on the purpose and construction of the example, I will draw diagrams for it (easier to version text!):

EXAMPLE X: prof:isTransitiveProfileOf in use

# A profile that is within a hierarchy of profiles may wish to indicate it profiles things "further up the 
# chain". To do this, prof:isTransitiveProfileOf can be used to indicate anything the profile is related to by a series of one or more prof:isProfileOf properties.

# Here the New Zealand profile of the ISO addressing standard is presented in a chain of profiles
@prefix dct: <http://purl.org/dc/terms/> .
@prefix prof: <http://www.w3.org/ns/dx/prof/> .
@prefix role: <http://www.w3.org/ns/dx/prof/role/> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<http://linked.data.gov.au/def/iso19160-1-address-nz-profile>
  a prof:Profile ;
  rdfs:label "New Zealand Profile of ISO19160-1" ;
  rdfs:comment """This is a country-specific profile of the international 
                  addressing standard, ISO19160-1:2015 (Address)""" ;
  prof:isProfileOf <http://linked.data.gov.au/def/iso19160-1-address> .

# The ISO thing that the NZ Profile profiles is actually a Web Ontology Language
# (OWL) version of the original ISO addressing standard
<http://linked.data.gov.au/def/iso19160-1-address>
  a prof:Profile ;
  rdfs:label "OWL Profile of ISO19160-1" ;
  rdfs:comment """This profile profiles both ISO19160-1 (Addressing) and also 
                  the Web Ontology Language (OWL)""" ;
  prof:isProfileOf <https://www.iso.org/standard/61710.html> , 
                   <http://www.w3.org/2002/07/owl#> .

<https://www.iso.org/standard/61710.html>
  a dct:Standard ;
  rdfs:label "ISO 19160-1:2015 Addressing -- Part 1: Conceptual model" .

# Here now the New Zealand profile indicates it is profiling things which profile other things:

@prefix dct: <http://purl.org/dc/terms/> .
@prefix prof: <http://www.w3.org/ns/dx/prof/> .
@prefix role: <http://www.w3.org/ns/dx/prof/role/> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<http://linked.data.gov.au/def/iso19160-1-address-nz-profile>
  a prof:Profile ;
  rdfs:label "New Zealand Profile of ISO19160-1" ;
  rdfs:comment """This is a country-specific profile of the international 
                  addressing standard, ISO19160-1:2015 (Address)""" ;
  prof:isProfileOf <http://linked.data.gov.au/def/iso19160-1-address> ;
  prof:isTransitiveProfileOf <http://linked.data.gov.au/def/iso19160-1-address> ,
                             <https://www.iso.org/standard/61710.html> , 
                             <http://www.w3.org/2002/07/owl#> .

# Since prof:isProfileOf is a sub property of prof:isTransitiveProfileOf, the relation between 
# the NZ Profile and its immediate parent can be described using both properties.

# now, uisng prof:isTransitiveProfileOf, the author of the NZ Profile can show all the standards or other 
# profiles that users of the NZ Profile might need to be aware of, without following the hierarchy of
# profiles, link by link. Using prof:isTransitiveProfileOf, the user of the NZ Profile learns, for instance,
that the NZ Profile profiles the OWL standard at some point in its hierarchy.

Question to all: does this example convey useful information? Could it be formulated differently?

aisaac commented 5 years ago

@nicholascar nitpicking: next time you post an example can you do carriage returns in the comment so that these checking it the example in github UI don't have to scroll horizontally?

aisaac commented 5 years ago

@nicholascar it conveys useful information, thanks!

But it may have one flaw:

The ISO thing that the NZ Profile profiles is actually a Web Ontology Language OWL) version of the original ISO addressing standard sounds really loose. Can "the ISO thing" be something like "ISO19160-1"? And here's where the flaw could be: in this case, is <http://linked.data.gov.au/def/iso19160-1-address> really a profile of ISO19160-1:2015? I think that one could see in it a resource descriptor (in OWL) for that base ISO standard, not a fully-fledged profile.

Also, in terms of formulation, my expectation would be that an example for a transitive property should not hint that data publishers have to materialize the statements of that property. In SKOS we were rather clear that the general expectation is that data publishers assert skos:broader statements and that skos:broaderTransitive are then infered, possibly by others, mainly for data consumption scenarios (i.e., querying). Of course this is not a general rule. Still, the intro and formulation for your example could be changed.

Here's the order of things that I would suggest:

  1. The example without the transitive statements.

  2. A sentence that introduces the inference/semantics. Like "From the prof:isProfileOf statements in this example, and according to the semantics of prof:isTransitiveProfileOf, one can infer the following statements:"

  3. The transitive statements infered.

  4. A recap/guidance for data consumers and implementers, leaving options open. Like "These statements can for example help data consumers to identify that a piece of data that conforms to a very narrow profile actually conforms to a more general specification that they can handle, independently from the complexity of the 'profiling chain' that relates these two specifications. At this stage however we do not make recommendations on who should materialize the results of inference, and where they shall be published". unless there is a requirement that says that the hierarchy of profiling should be published?

I hope this helps.

nicholascar commented 5 years ago

OK:

EXAMPLE X: prof:isTransitiveProfileOf in use

# A profile that is within a hierarchy of profiles may wish to indicate it profiles 
# things "further up the chain". To do this, prof:isTransitiveProfileOf can be used 
# to indicate anything the profile is related to by a series of one or more 
# prof:isProfileOf properties.

# Here the New Zealand profile of the ISO addressing standard is presented in a chain 
# of profiles:

@prefix dct: <http://purl.org/dc/terms/> .
@prefix prof: <http://www.w3.org/ns/dx/prof/> .
@prefix role: <http://www.w3.org/ns/dx/prof/role/> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<http://linked.data.gov.au/def/iso19160-1-address-nz-profile>
  a prof:Profile ;
  rdfs:label "New Zealand Profile of ISO19160-1" ;
  rdfs:comment """This is a country-specific profile of the international 
                  addressing standard, ISO19160-1:2015 (Address)""" ;
  prof:isProfileOf <http://linked.data.gov.au/def/iso19160-1-address> .

# The ISO thing that the NZ Profile profiles is actually a Web Ontology Language
# (OWL) version of the original ISO addressing standard
<http://linked.data.gov.au/def/iso19160-1-address>
  a prof:Profile ;
  rdfs:label "OWL Profile of ISO19160-1" ;
  rdfs:comment """This profile profiles both ISO19160-1 (Addressing) and also 
                  the Web Ontology Language (OWL)""" ;
  prof:isProfileOf <https://www.iso.org/standard/61710.html> , 
                   <http://www.w3.org/2002/07/owl#> .

<https://www.iso.org/standard/61710.html>
  a dct:Standard ;
  rdfs:label "ISO 19160-1:2015 Addressing -- Part 1: Conceptual model" .

# Now, according to the semantics of prof:isTransitiveProfileOf, using the 
# prof:isProfileOf statements above, one can infer the following additional
# statements:

<http://linked.data.gov.au/def/iso19160-1-address-nz-profile>
  prof:isTransitiveProfileOf <http://linked.data.gov.au/def/iso19160-1-address> ,
                             <https://www.iso.org/standard/61710.html> , 
                             <http://www.w3.org/2002/07/owl#> .

# These statements may help consumers understand which broad, well-known
# profiles data they have conforms to when they are presented only with its 
# conformance to most specialised (lowest) profile in a hierarchy which they
# may not understand.

# In this example too, a user of the profile 
# <http://linked.data.gov.au/def/iso19160-1-address-nz-profile> will also 
# understand that data conforming to it is also conformant with OWL which is not 
# in the direct hierarchy of addressing standards (iso19160-1-address-nz-profile > 
# iso19160-1-address > ISO 19160-1:2015) but is critical to know about when using
# the specialised standard as it can indicate reasoning possibilities.

istransitiveprofileof

kcoyle commented 5 years ago

@nicholascar @aisaac In the diagram above, I believe that Profile is a named graph, not a class. There has to be a "thing" with an IRI that represents the profile. Also, I don't see that the dct:Standard class is relevant to the diagram. And one more: what is the box that just says "OWL"? And how is OWL Profiles of ISO... a profile of it?

So I suggest: "Profile" (dark box) becomes "Profile X" Drop dct:Standard Clarify box with just "OWL"

aisaac commented 5 years ago

@nicholascar it looks better now. Wrt formatting, I would recommend to split the example in several pieces of code with 'real text' in-between, not one piece of code with the explanations in comment (especially regarding the parts introduced at "Now, according to the semantics of prof:isTransitiveProfileOf" and after). But well I can try this myself after the example has been stabilized ;-)

Wrt the content, I'm still not sure that the 'OWL Profile of ISO19160-1' really qualifies as a profile. The more I look at it the more I'm convinced this is a ResourceDescriptor, even though it's not one created by the publisher of the original standard. In fact I would really recommend against PROF venturing into the area of profile OWL. It's a bit like saying that an SHACL file is a profile of the SHACL.... Plus, OWL has already some "real" profiles, like OWL 2 EL and it's a completely different level of profiling (well in fact I believe it's a case true profiling, but between meta-vocabularies, not vocabularies - anyway again please let's not venture there...).