Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add an indexing# namespace for indexing-related values in fedora #13

Closed
wants to merge 6 commits into from
Closed

add an indexing# namespace for indexing-related values in fedora #13

wants to merge 6 commits into from

Conversation

acoburn
Copy link
Contributor

@acoburn acoburn commented Jan 14, 2015

https://jira.duraspace.org/browse/FCREPO-1285

This is a straw-man implementation of a http://fedora.info/definitions/v4/config# namespace

Comments welcome!

<rdfs:comment xml:lang="en">Ontology for user-defined configuration properties and classes on Fedora-curated resources.</rdfs:comment>
</owl:Ontology>

<owl:ObjectProperty rdf:about="http://fedora.info/definitions/v4/config#hasIndexingTransform">
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Shouldn't this be a DatatypeProperty? The range is literal, and in the current implementation it is a path segment treated as a string.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, I believe it should be a DatatypeProperty. Also, the range should be rdf:resource="&xsd;string"

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍 sounds right to me.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also, this property should be hasIndexingTransformation as per the documentation: https://wiki.duraspace.org/display/FEDORA40/External+Search


<owl:DatatypeProperty rdf:about="http://fedora.info/definitions/v4/config#hasIndexingTransformation">
<rdfs:label xml:lang="en">has indexing transformation</rdfs:label>
<rdfs:domain rdf:resource="http://fcrepo.info/definitions/v4/repository#Container"/>
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should the domain for the hasIndexingTransformation property be repository:Container or repository:Resource? Practically speaking, it seems that repository:Container is correct, but should it be less restrictive?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The correct domain is "indexing:Indexable", or "config:Indexable", which is what it seems to have been called here.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wait, the implication here is that the only reason to transform something is to index it. Is that truly the only reason? Or are we open to transforming Containers that aren't Indexable for other purposes?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No, the implication is that the only reason that something possesses an "indexing transformation" is because it is indexable. We have no language for general "tranformability" because, under the current rules of the transform API, any resource with an RDF representation available at its URI is transformable, at least as I understand the matter. We may wish to introduce such language, but that's a separate concern from "indexability". In fact, we could probably profit from revisiting the transform API and trying to generalize it.

Incidentally, this kind of confusion is why I voted against compressing "auxiliary" predicates and types into a grab-bag "config" namespace.

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@ajs6f, did I miss your vote against a config# namespace here: #12 ?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Right. So we can do that by establishing a standard for indexing
"sidecars". That would include an ontology (much like the one we're now
using) and possibly some common understanding of the workflow implied by
the use of predicates and types in that ontology. Then, when I decide to do
something odd like create an indexing component using Apache UIMA for
feature extraction from images, I can just supply it as a "standardized"
part that will work with UCSD's systems.

On Tue, Jan 20, 2015 at 11:28 AM, Esmé Cowles notifications@github.com
wrote:

In config.rdf
#13 (diff):

+
+
+<rdf:RDF

  • xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
    
  • xmlns:owl="http://www.w3.org/2002/07/owl#"
    
  • xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
    
  • xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
    
  • <owl:Ontology rdf:about="http://fedora.info/definitions/v4/config#">
  •    <rdfs:label xml:lang="en">Fedora Commons Configuration Ontology/rdfs:label
    
  •    <rdfs:comment xml:lang="en">Ontology for user-defined configuration properties and classes on Fedora-curated resources./rdfs:comment
    
  • /owl:Ontology

I hadn't thought of the config ontology as an SPI, but I do see indexing
as a common repository sidecar, and think it makes sense to encourage
implementations to be interoperable. I agree that indexing is a separate
concern from the repository, and another implementation might have no need
these entities, or for indexing at all. But if they do, then they should
use the same mechanism for configuring it, and be interoperable with other
Fedora components. For example, if the community supports fcrepo-camel, but
UCSD decides to maintain fcrepo-message-consumer instead, they should use
the same entities to configure which objects should be indexed, and how.


Reply to this email directly or view it on GitHub
https://github.com/fcrepo4/ontology/pull/13/files#r23234040.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@ajs6f what would you think of a proposal to publish an indexing# ontology in the fedora.info domain?

Or do you see that as being the responsibility of repository implementations?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think that's a fine idea. (Although I'm honestly not too clear on the
differences between fcrepo.org, fedora.info, etc.) And if we were to do
that, it would make a lot of sense for the "source" for that published
ontology to be managed here, in its own repo, and paralleled by some
documentation on the wiki explaining what an indexing component should do
to respect the use of that ontology.

On Tue, Jan 20, 2015 at 4:10 PM, Aaron Coburn notifications@github.com
wrote:

In config.rdf
#13 (diff):

+
+
+<rdf:RDF

  • xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
    
  • xmlns:owl="http://www.w3.org/2002/07/owl#"
    
  • xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
    
  • xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
    
  • <owl:Ontology rdf:about="http://fedora.info/definitions/v4/config#">
  •    <rdfs:label xml:lang="en">Fedora Commons Configuration Ontology/rdfs:label
    
  •    <rdfs:comment xml:lang="en">Ontology for user-defined configuration properties and classes on Fedora-curated resources./rdfs:comment
    
  • /owl:Ontology

@ajs6f https://github.com/ajs6f what would you think of a proposal to
publish an indexing# ontology in the fedora.info domain?

Or do you see that as being the responsibility of repository
implementations?


Reply to this email directly or view it on GitHub
https://github.com/fcrepo4/ontology/pull/13/files#r23256067.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@ajs6f when you write "in its own repo", do you mean separately from the fcrepo4/ontology github repository?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good point-- I was mixing up the various levels of hierarchy available in Git/GitHub. I suppose I mean that we could either:

  • Subdivide this repository with folders for "repository ontologies", "indexing ontologies", etc. This would have to evolve as the ontologies evolve with the HTTP API specs.
  • Start a new "indexing SPI" repository and put the indexing ontology there. This is probably better, because there might be additional resources for that SPI, beyond the ontology.

@acoburn
Copy link
Contributor Author

acoburn commented Jan 22, 2015

As discussed in the 1-22-15 tech call, this will be implemented in an indexing# namespace, not a config# namespace.

@acoburn acoburn changed the title add a config: namespace for user-defined values in fedora add an indexing# namespace for indexing-related values in fedora Jan 22, 2015
@acoburn
Copy link
Contributor Author

acoburn commented Jan 22, 2015

@ajs6f @escowles does this correctly represent what we have discussed?

Note that this departs from the current use and documentation of the indexing namespace in that I define the owl:class as indexing:Indexable (rather than indexing:indexable).

@escowles
Copy link
Contributor

👍 looks good to me

@ajs6f
Copy link
Contributor

ajs6f commented Jan 23, 2015

I'm not seeing anything here that we couldn't do with RDFS. Is there some reason to use OWL instead?


<owl:Ontology rdf:about="http://fedora.info/definitions/v4/indexing#">
<rdfs:label xml:lang="en">Fedora Commons Indexing Ontology</rdfs:label>
<rdfs:comment xml:lang="en">Ontology for user-defined indexing properties and classes on Fedora-curated resources.</rdfs:comment>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We might want to use other language than "user-defined", because that's a little ambiguous here. Maybe just something like "Ontology for indexing configuration in Fedora repositories"?.

@acoburn
Copy link
Contributor Author

acoburn commented Jan 23, 2015

@ajs6f RDFS would also work for this -- I used OWL just out of habit.

@ajs6f
Copy link
Contributor

ajs6f commented Jan 23, 2015

Let's do RDFS, on the principle of "least power".

@acoburn
Copy link
Contributor Author

acoburn commented Jan 23, 2015

@ajs6f @escowles This is the latest iteration of the indexing# ontology, implemented as RDFS. Please comment!

@@ -47,6 +45,20 @@
<transformationSet>
<dir>.</dir>
<includes>
<include>indexing.rdf</include>
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This section depends on an rdfs2html.xsl file, which was not included in the commit. Should I revert that change or simply include the XSLT from @escowles ?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@acoburn Go ahead and include that file.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@escowles Thanks so much!

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@acoburn, I am not yet seeing the rdfs2html.xsl file. Have you yet to commit it or am I missing something?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I haven't added it yet. It will come with the next commit -- it needed a bit of modification to work with rdf:Property and rdfs:Class

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@awoods -- the file is there now.

…s; adjusted XSL templates for proper HTML output
@acoburn
Copy link
Contributor Author

acoburn commented Jan 23, 2015

OK. Let's try this again.

I've added an RDFS implementation of the indexing# vocabulary with rdf:Property and rdfs:Class. I have also added an rdfs2html.xsl document, somewhat modified from @escowles version, which included tidying up the HTML so that it matches the output from owl2html.xsl. I also split the owl2html.xsl into two documents -- keeping all of the owl-specific parsing in the original document, and moving the /index template stuff into its own file. Maven, etc has been updated so that

mvn xml:transform

should work properly.

<xsl:value-of select="substring-after(@rdf:about,$about)"/>
</xsl:variable>
<xsl:if test="$id != ''">
<h3 id="{$id}"><xsl:value-of select="$id"/></h3>
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

actually, this should be <h4> in order to match the owl2html formatting

@awoods
Copy link

awoods commented Jan 23, 2015

Great. Is everyone happy? Are all comments addressed?
If so, I will push it through.
Thanks for working through the details, @acoburn.

@ajs6f
Copy link
Contributor

ajs6f commented Jan 23, 2015

I think we're in good shape to move forward. Next week, I'll find something else about which to complain endlessly.

@awoods
Copy link

awoods commented Jan 23, 2015

It would be worrisome if you didn't.

@awoods
Copy link

awoods commented Jan 23, 2015

Resolved with: d13033b

@awoods awoods closed this Jan 23, 2015
@acoburn acoburn deleted the add-config-ns branch October 4, 2015 01:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants