[GitHub] jena pull request #432: JENA-1560: PrefixMappingUtils
Github user asfgit closed the pull request at: https://github.com/apache/jena/pull/432 ---
[GitHub] jena pull request #432: JENA-1560: PrefixMappingUtils
Github user afs commented on a diff in the pull request: https://github.com/apache/jena/pull/432#discussion_r194708154 --- Diff: jena-core/src/main/java/org/apache/jena/util/PrefixMappingUtils.java --- @@ -0,0 +1,362 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.jena.util; + +import java.util.* ; +import java.util.function.Consumer ; +import java.util.stream.Collectors ; + +import org.apache.jena.atlas.lib.SetUtils ; +import org.apache.jena.atlas.lib.Trie ; +import org.apache.jena.graph.Graph ; +import org.apache.jena.graph.Node ; +import org.apache.jena.graph.Triple ; +import org.apache.jena.graph.impl.WrappedGraph; +import org.apache.jena.rdf.model.Model ; +import org.apache.jena.shared.PrefixMapping ; +import org.apache.jena.shared.impl.PrefixMappingImpl ; + +public class PrefixMappingUtils { +/** + * Return a read-only graph that has the same data (RDF triples) as the one given, but has a + * prefix mapping that only includes "in use " prefixes. + * + * The prefix mappings of the two graphs are not connected. + * Later changes to the prefix mapping of the original graph are not reflected in the returned graph. + * Modifications to the triples conatained in the underlying graph are reflected. + */ +public static Graph graphInUsePrefixMapping(Graph graph) { +final PrefixMapping prefixMapping = calcInUsePrefixMapping(graph) ; +prefixMapping.lock() ; +Graph graph2 = new WrappedGraph(graph) { +@Override +public void performAdd(Triple triple) +{ throw new UnsupportedOperationException() ; } + +@Override +public void performDelete(Triple triple) +{ throw new UnsupportedOperationException() ; } + +@Override +public PrefixMapping getPrefixMapping() { +return prefixMapping ; +} +} ; +return graph2 ; +} + +/** + * Analyse the graph to see which prefixes of the graph are in use. + * + * In the case of overlapping prefixes (where one prefix declaration is has an initial + * URI string which matches another prefix declaration), all are included, though + * they may not be used when printing (that depends on the output process). In effect, + * this process has "false positives". + * + * This function does not calculate new prefixes. + * + * @see #calcInUsePrefixMappingTTL(Graph) + */ +public static PrefixMapping calcInUsePrefixMapping(Graph graph) { +PrefixMapping prefixMapping = graph.getPrefixMapping() ; +if ( prefixMapping == null ) +return null ; +return calcInUsePrefixMapping(graph, prefixMapping) ; +} + +/** + * Analyse the graph to see which prefixes of the given {@link PrefixMapping} are in + * use. + * + * In the case of overlapping prefixes (where one prefix declaration is has an initial + * URI string which matches another prefix declaration), all are included, though + * they may not be used when printing (that depends on the output process). In effect, + * this process has "false positives". + * + * This function does not calculate new prefixes. + * + * @see #calcInUsePrefixMappingTTL(Graph, PrefixMapping) + */ +public static PrefixMapping calcInUsePrefixMapping(Graph graph, PrefixMapping prefixMapping) { + +/* Method: + * + * For each URI in the data, look it up in the trie. + * to see if has a declared prefix. + * + * Exit early if every prefix is accounted for. + */ + +// Map prefix to URI. +
[GitHub] jena pull request #432: JENA-1560: PrefixMappingUtils
Github user afs commented on a diff in the pull request: https://github.com/apache/jena/pull/432#discussion_r194708146 --- Diff: jena-core/src/main/java/org/apache/jena/util/PrefixMappingUtils.java --- @@ -0,0 +1,362 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.jena.util; + +import java.util.* ; +import java.util.function.Consumer ; +import java.util.stream.Collectors ; + +import org.apache.jena.atlas.lib.SetUtils ; +import org.apache.jena.atlas.lib.Trie ; +import org.apache.jena.graph.Graph ; +import org.apache.jena.graph.Node ; +import org.apache.jena.graph.Triple ; +import org.apache.jena.graph.impl.WrappedGraph; +import org.apache.jena.rdf.model.Model ; +import org.apache.jena.shared.PrefixMapping ; +import org.apache.jena.shared.impl.PrefixMappingImpl ; + +public class PrefixMappingUtils { +/** + * Return a read-only graph that has the same data (RDF triples) as the one given, but has a + * prefix mapping that only includes "in use " prefixes. + * + * The prefix mappings of the two graphs are not connected. + * Later changes to the prefix mapping of the original graph are not reflected in the returned graph. + * Modifications to the triples conatained in the underlying graph are reflected. + */ +public static Graph graphInUsePrefixMapping(Graph graph) { +final PrefixMapping prefixMapping = calcInUsePrefixMapping(graph) ; +prefixMapping.lock() ; +Graph graph2 = new WrappedGraph(graph) { +@Override +public void performAdd(Triple triple) +{ throw new UnsupportedOperationException() ; } + +@Override +public void performDelete(Triple triple) +{ throw new UnsupportedOperationException() ; } + +@Override +public PrefixMapping getPrefixMapping() { +return prefixMapping ; +} +} ; +return graph2 ; +} + +/** + * Analyse the graph to see which prefixes of the graph are in use. + * + * In the case of overlapping prefixes (where one prefix declaration is has an initial + * URI string which matches another prefix declaration), all are included, though + * they may not be used when printing (that depends on the output process). In effect, + * this process has "false positives". + * + * This function does not calculate new prefixes. + * + * @see #calcInUsePrefixMappingTTL(Graph) + */ +public static PrefixMapping calcInUsePrefixMapping(Graph graph) { +PrefixMapping prefixMapping = graph.getPrefixMapping() ; +if ( prefixMapping == null ) +return null ; +return calcInUsePrefixMapping(graph, prefixMapping) ; +} + +/** + * Analyse the graph to see which prefixes of the given {@link PrefixMapping} are in + * use. + * + * In the case of overlapping prefixes (where one prefix declaration is has an initial + * URI string which matches another prefix declaration), all are included, though + * they may not be used when printing (that depends on the output process). In effect, + * this process has "false positives". + * + * This function does not calculate new prefixes. + * + * @see #calcInUsePrefixMappingTTL(Graph, PrefixMapping) + */ +public static PrefixMapping calcInUsePrefixMapping(Graph graph, PrefixMapping prefixMapping) { + +/* Method: + * + * For each URI in the data, look it up in the trie. + * to see if has a declared prefix. + * + * Exit early if every prefix is accounted for. + */ + +// Map prefix to URI. +
[GitHub] jena pull request #432: JENA-1560: PrefixMappingUtils
Github user afs commented on a diff in the pull request: https://github.com/apache/jena/pull/432#discussion_r194708134 --- Diff: jena-core/src/main/java/org/apache/jena/util/PrefixMappingUtils.java --- @@ -0,0 +1,362 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.jena.util; + +import java.util.* ; +import java.util.function.Consumer ; +import java.util.stream.Collectors ; + +import org.apache.jena.atlas.lib.SetUtils ; +import org.apache.jena.atlas.lib.Trie ; +import org.apache.jena.graph.Graph ; +import org.apache.jena.graph.Node ; +import org.apache.jena.graph.Triple ; +import org.apache.jena.graph.impl.WrappedGraph; +import org.apache.jena.rdf.model.Model ; +import org.apache.jena.shared.PrefixMapping ; +import org.apache.jena.shared.impl.PrefixMappingImpl ; + +public class PrefixMappingUtils { +/** + * Return a read-only graph that has the same data (RDF triples) as the one given, but has a + * prefix mapping that only includes "in use " prefixes. + * + * The prefix mappings of the two graphs are not connected. + * Later changes to the prefix mapping of the original graph are not reflected in the returned graph. + * Modifications to the triples conatained in the underlying graph are reflected. + */ +public static Graph graphInUsePrefixMapping(Graph graph) { +final PrefixMapping prefixMapping = calcInUsePrefixMapping(graph) ; +prefixMapping.lock() ; +Graph graph2 = new WrappedGraph(graph) { +@Override +public void performAdd(Triple triple) +{ throw new UnsupportedOperationException() ; } + +@Override +public void performDelete(Triple triple) +{ throw new UnsupportedOperationException() ; } + +@Override +public PrefixMapping getPrefixMapping() { +return prefixMapping ; +} +} ; +return graph2 ; +} + +/** + * Analyse the graph to see which prefixes of the graph are in use. + * + * In the case of overlapping prefixes (where one prefix declaration is has an initial + * URI string which matches another prefix declaration), all are included, though + * they may not be used when printing (that depends on the output process). In effect, + * this process has "false positives". + * + * This function does not calculate new prefixes. + * + * @see #calcInUsePrefixMappingTTL(Graph) + */ +public static PrefixMapping calcInUsePrefixMapping(Graph graph) { +PrefixMapping prefixMapping = graph.getPrefixMapping() ; +if ( prefixMapping == null ) +return null ; +return calcInUsePrefixMapping(graph, prefixMapping) ; +} + +/** + * Analyse the graph to see which prefixes of the given {@link PrefixMapping} are in + * use. + * + * In the case of overlapping prefixes (where one prefix declaration is has an initial + * URI string which matches another prefix declaration), all are included, though + * they may not be used when printing (that depends on the output process). In effect, + * this process has "false positives". + * + * This function does not calculate new prefixes. + * + * @see #calcInUsePrefixMappingTTL(Graph, PrefixMapping) + */ +public static PrefixMapping calcInUsePrefixMapping(Graph graph, PrefixMapping prefixMapping) { + +/* Method: + * + * For each URI in the data, look it up in the trie. + * to see if has a declared prefix. + * + * Exit early if every prefix is accounted for. + */ + +// Map prefix to URI. +
[GitHub] jena pull request #432: JENA-1560: PrefixMappingUtils
Github user afs commented on a diff in the pull request: https://github.com/apache/jena/pull/432#discussion_r194707130 --- Diff: jena-core/src/main/java/org/apache/jena/util/PrefixMappingUtils.java --- @@ -0,0 +1,362 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.jena.util; + +import java.util.* ; +import java.util.function.Consumer ; +import java.util.stream.Collectors ; + +import org.apache.jena.atlas.lib.SetUtils ; +import org.apache.jena.atlas.lib.Trie ; +import org.apache.jena.graph.Graph ; +import org.apache.jena.graph.Node ; +import org.apache.jena.graph.Triple ; +import org.apache.jena.graph.impl.WrappedGraph; +import org.apache.jena.rdf.model.Model ; +import org.apache.jena.shared.PrefixMapping ; +import org.apache.jena.shared.impl.PrefixMappingImpl ; + +public class PrefixMappingUtils { +/** + * Return a read-only graph that has the same data (RDF triples) as the one given, but has a + * prefix mapping that only includes "in use " prefixes. --- End diff -- Done ---
[GitHub] jena pull request #432: JENA-1560: PrefixMappingUtils
Github user ajs6f commented on a diff in the pull request: https://github.com/apache/jena/pull/432#discussion_r194564667 --- Diff: jena-core/src/main/java/org/apache/jena/util/PrefixMappingUtils.java --- @@ -0,0 +1,362 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.jena.util; + +import java.util.* ; +import java.util.function.Consumer ; +import java.util.stream.Collectors ; + +import org.apache.jena.atlas.lib.SetUtils ; +import org.apache.jena.atlas.lib.Trie ; +import org.apache.jena.graph.Graph ; +import org.apache.jena.graph.Node ; +import org.apache.jena.graph.Triple ; +import org.apache.jena.graph.impl.WrappedGraph; +import org.apache.jena.rdf.model.Model ; +import org.apache.jena.shared.PrefixMapping ; +import org.apache.jena.shared.impl.PrefixMappingImpl ; + +public class PrefixMappingUtils { +/** + * Return a read-only graph that has the same data (RDF triples) as the one given, but has a + * prefix mapping that only includes "in use " prefixes. + * + * The prefix mappings of the two graphs are not connected. + * Later changes to the prefix mapping of the original graph are not reflected in the returned graph. + * Modifications to the triples conatained in the underlying graph are reflected. --- End diff -- Typo "conatained" => "contained" ---
[GitHub] jena pull request #432: JENA-1560: PrefixMappingUtils
Github user ajs6f commented on a diff in the pull request: https://github.com/apache/jena/pull/432#discussion_r194566823 --- Diff: jena-core/src/main/java/org/apache/jena/util/PrefixMappingUtils.java --- @@ -0,0 +1,362 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.jena.util; + +import java.util.* ; +import java.util.function.Consumer ; +import java.util.stream.Collectors ; + +import org.apache.jena.atlas.lib.SetUtils ; +import org.apache.jena.atlas.lib.Trie ; +import org.apache.jena.graph.Graph ; +import org.apache.jena.graph.Node ; +import org.apache.jena.graph.Triple ; +import org.apache.jena.graph.impl.WrappedGraph; +import org.apache.jena.rdf.model.Model ; +import org.apache.jena.shared.PrefixMapping ; +import org.apache.jena.shared.impl.PrefixMappingImpl ; + +public class PrefixMappingUtils { +/** + * Return a read-only graph that has the same data (RDF triples) as the one given, but has a + * prefix mapping that only includes "in use " prefixes. + * + * The prefix mappings of the two graphs are not connected. + * Later changes to the prefix mapping of the original graph are not reflected in the returned graph. + * Modifications to the triples conatained in the underlying graph are reflected. + */ +public static Graph graphInUsePrefixMapping(Graph graph) { +final PrefixMapping prefixMapping = calcInUsePrefixMapping(graph) ; +prefixMapping.lock() ; +Graph graph2 = new WrappedGraph(graph) { +@Override +public void performAdd(Triple triple) +{ throw new UnsupportedOperationException() ; } + +@Override +public void performDelete(Triple triple) +{ throw new UnsupportedOperationException() ; } + +@Override +public PrefixMapping getPrefixMapping() { +return prefixMapping ; +} +} ; +return graph2 ; +} + +/** + * Analyse the graph to see which prefixes of the graph are in use. + * + * In the case of overlapping prefixes (where one prefix declaration is has an initial + * URI string which matches another prefix declaration), all are included, though + * they may not be used when printing (that depends on the output process). In effect, + * this process has "false positives". + * + * This function does not calculate new prefixes. + * + * @see #calcInUsePrefixMappingTTL(Graph) + */ +public static PrefixMapping calcInUsePrefixMapping(Graph graph) { +PrefixMapping prefixMapping = graph.getPrefixMapping() ; +if ( prefixMapping == null ) +return null ; +return calcInUsePrefixMapping(graph, prefixMapping) ; +} + +/** + * Analyse the graph to see which prefixes of the given {@link PrefixMapping} are in + * use. + * + * In the case of overlapping prefixes (where one prefix declaration is has an initial + * URI string which matches another prefix declaration), all are included, though + * they may not be used when printing (that depends on the output process). In effect, + * this process has "false positives". + * + * This function does not calculate new prefixes. + * + * @see #calcInUsePrefixMappingTTL(Graph, PrefixMapping) + */ +public static PrefixMapping calcInUsePrefixMapping(Graph graph, PrefixMapping prefixMapping) { + +/* Method: + * + * For each URI in the data, look it up in the trie. + * to see if has a declared prefix. + * + * Exit early if every prefix is accounted for. + */ + +// Map prefix to URI. +
[GitHub] jena pull request #432: JENA-1560: PrefixMappingUtils
Github user ajs6f commented on a diff in the pull request: https://github.com/apache/jena/pull/432#discussion_r194567840 --- Diff: jena-core/src/main/java/org/apache/jena/util/PrefixMappingUtils.java --- @@ -0,0 +1,362 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.jena.util; + +import java.util.* ; +import java.util.function.Consumer ; +import java.util.stream.Collectors ; + +import org.apache.jena.atlas.lib.SetUtils ; +import org.apache.jena.atlas.lib.Trie ; +import org.apache.jena.graph.Graph ; +import org.apache.jena.graph.Node ; +import org.apache.jena.graph.Triple ; +import org.apache.jena.graph.impl.WrappedGraph; +import org.apache.jena.rdf.model.Model ; +import org.apache.jena.shared.PrefixMapping ; +import org.apache.jena.shared.impl.PrefixMappingImpl ; + +public class PrefixMappingUtils { +/** + * Return a read-only graph that has the same data (RDF triples) as the one given, but has a + * prefix mapping that only includes "in use " prefixes. + * + * The prefix mappings of the two graphs are not connected. + * Later changes to the prefix mapping of the original graph are not reflected in the returned graph. + * Modifications to the triples conatained in the underlying graph are reflected. + */ +public static Graph graphInUsePrefixMapping(Graph graph) { +final PrefixMapping prefixMapping = calcInUsePrefixMapping(graph) ; +prefixMapping.lock() ; +Graph graph2 = new WrappedGraph(graph) { +@Override +public void performAdd(Triple triple) +{ throw new UnsupportedOperationException() ; } + +@Override +public void performDelete(Triple triple) +{ throw new UnsupportedOperationException() ; } + +@Override +public PrefixMapping getPrefixMapping() { +return prefixMapping ; +} +} ; +return graph2 ; +} + +/** + * Analyse the graph to see which prefixes of the graph are in use. + * + * In the case of overlapping prefixes (where one prefix declaration is has an initial + * URI string which matches another prefix declaration), all are included, though + * they may not be used when printing (that depends on the output process). In effect, + * this process has "false positives". + * + * This function does not calculate new prefixes. + * + * @see #calcInUsePrefixMappingTTL(Graph) + */ +public static PrefixMapping calcInUsePrefixMapping(Graph graph) { +PrefixMapping prefixMapping = graph.getPrefixMapping() ; +if ( prefixMapping == null ) +return null ; +return calcInUsePrefixMapping(graph, prefixMapping) ; +} + +/** + * Analyse the graph to see which prefixes of the given {@link PrefixMapping} are in + * use. + * + * In the case of overlapping prefixes (where one prefix declaration is has an initial + * URI string which matches another prefix declaration), all are included, though + * they may not be used when printing (that depends on the output process). In effect, + * this process has "false positives". + * + * This function does not calculate new prefixes. + * + * @see #calcInUsePrefixMappingTTL(Graph, PrefixMapping) + */ +public static PrefixMapping calcInUsePrefixMapping(Graph graph, PrefixMapping prefixMapping) { + +/* Method: + * + * For each URI in the data, look it up in the trie. + * to see if has a declared prefix. + * + * Exit early if every prefix is accounted for. + */ + +// Map prefix to URI. +
[GitHub] jena pull request #432: JENA-1560: PrefixMappingUtils
Github user ajs6f commented on a diff in the pull request: https://github.com/apache/jena/pull/432#discussion_r194564937 --- Diff: jena-core/src/main/java/org/apache/jena/util/PrefixMappingUtils.java --- @@ -0,0 +1,362 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.jena.util; + +import java.util.* ; +import java.util.function.Consumer ; +import java.util.stream.Collectors ; + +import org.apache.jena.atlas.lib.SetUtils ; +import org.apache.jena.atlas.lib.Trie ; +import org.apache.jena.graph.Graph ; +import org.apache.jena.graph.Node ; +import org.apache.jena.graph.Triple ; +import org.apache.jena.graph.impl.WrappedGraph; +import org.apache.jena.rdf.model.Model ; +import org.apache.jena.shared.PrefixMapping ; +import org.apache.jena.shared.impl.PrefixMappingImpl ; + +public class PrefixMappingUtils { +/** + * Return a read-only graph that has the same data (RDF triples) as the one given, but has a + * prefix mapping that only includes "in use " prefixes. --- End diff -- Might want to put a link here to `calcInUsePrefixMapping` below just in case someone wants to the precise meaning of "in use". ---
[GitHub] jena pull request #432: JENA-1560: PrefixMappingUtils
Github user ajs6f commented on a diff in the pull request: https://github.com/apache/jena/pull/432#discussion_r194568224 --- Diff: jena-core/src/main/java/org/apache/jena/util/PrefixMappingUtils.java --- @@ -0,0 +1,362 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.jena.util; + +import java.util.* ; +import java.util.function.Consumer ; +import java.util.stream.Collectors ; + +import org.apache.jena.atlas.lib.SetUtils ; +import org.apache.jena.atlas.lib.Trie ; +import org.apache.jena.graph.Graph ; +import org.apache.jena.graph.Node ; +import org.apache.jena.graph.Triple ; +import org.apache.jena.graph.impl.WrappedGraph; +import org.apache.jena.rdf.model.Model ; +import org.apache.jena.shared.PrefixMapping ; +import org.apache.jena.shared.impl.PrefixMappingImpl ; + +public class PrefixMappingUtils { +/** + * Return a read-only graph that has the same data (RDF triples) as the one given, but has a + * prefix mapping that only includes "in use " prefixes. + * + * The prefix mappings of the two graphs are not connected. + * Later changes to the prefix mapping of the original graph are not reflected in the returned graph. + * Modifications to the triples conatained in the underlying graph are reflected. + */ +public static Graph graphInUsePrefixMapping(Graph graph) { +final PrefixMapping prefixMapping = calcInUsePrefixMapping(graph) ; +prefixMapping.lock() ; +Graph graph2 = new WrappedGraph(graph) { +@Override +public void performAdd(Triple triple) +{ throw new UnsupportedOperationException() ; } + +@Override +public void performDelete(Triple triple) +{ throw new UnsupportedOperationException() ; } + +@Override +public PrefixMapping getPrefixMapping() { +return prefixMapping ; +} +} ; +return graph2 ; +} + +/** + * Analyse the graph to see which prefixes of the graph are in use. + * + * In the case of overlapping prefixes (where one prefix declaration is has an initial + * URI string which matches another prefix declaration), all are included, though + * they may not be used when printing (that depends on the output process). In effect, + * this process has "false positives". + * + * This function does not calculate new prefixes. + * + * @see #calcInUsePrefixMappingTTL(Graph) + */ +public static PrefixMapping calcInUsePrefixMapping(Graph graph) { +PrefixMapping prefixMapping = graph.getPrefixMapping() ; +if ( prefixMapping == null ) +return null ; +return calcInUsePrefixMapping(graph, prefixMapping) ; +} + +/** + * Analyse the graph to see which prefixes of the given {@link PrefixMapping} are in + * use. + * + * In the case of overlapping prefixes (where one prefix declaration is has an initial + * URI string which matches another prefix declaration), all are included, though + * they may not be used when printing (that depends on the output process). In effect, + * this process has "false positives". + * + * This function does not calculate new prefixes. + * + * @see #calcInUsePrefixMappingTTL(Graph, PrefixMapping) + */ +public static PrefixMapping calcInUsePrefixMapping(Graph graph, PrefixMapping prefixMapping) { + +/* Method: + * + * For each URI in the data, look it up in the trie. + * to see if has a declared prefix. + * + * Exit early if every prefix is accounted for. + */ + +// Map prefix to URI. +
[GitHub] jena pull request #432: JENA-1560: PrefixMappingUtils
Github user kinow commented on a diff in the pull request: https://github.com/apache/jena/pull/432#discussion_r194243520 --- Diff: jena-core/src/main/java/org/apache/jena/util/PrefixMappingUtils.java --- @@ -0,0 +1,361 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.jena.util; + +import java.util.* ; +import java.util.function.Consumer ; +import java.util.stream.Collectors ; + +import org.apache.jena.atlas.lib.SetUtils ; +import org.apache.jena.atlas.lib.Trie ; +import org.apache.jena.graph.Graph ; +import org.apache.jena.graph.Node ; +import org.apache.jena.graph.Triple ; +import org.apache.jena.graph.impl.WrappedGraph; +import org.apache.jena.rdf.model.Model ; +import org.apache.jena.shared.PrefixMapping ; +import org.apache.jena.shared.impl.PrefixMappingImpl ; + +public class PrefixMappingUtils { +/** + * Return a read-only graph that has the same data (RDF triples) as the one given, but has a + * prefix mapping that only includes "in use " prefixes. + * + * The prefix mappings of the two graphs are not connected. + * Later changes to the prefix mapping of the original graph are not reflected in the returned graph. + * Modifications to the triples conatained in the underlying graph are reflected. + */ +public static Graph graphInUsePrefixMapping(Graph graph) { +final PrefixMapping prefixMapping = calcInUsePrefixMapping(graph) ; +prefixMapping.lock() ; +Graph graph2 = new WrappedGraph(graph) { +@Override +public void performAdd(Triple triple) +{ throw new UnsupportedOperationException() ; } + +@Override +public void performDelete(Triple triple) +{ throw new UnsupportedOperationException() ; } + +@Override +public PrefixMapping getPrefixMapping() { +return prefixMapping ; +} +} ; +return graph2 ; +} + +/** + * Analyse the graph to see which prefixes of the graph are in use. + * + * In the case of overlapping prefixes (where one prefix declaration is has an initial + * URI string which imatches another prefix declaration), all are included, though + * they may not be used when printing (that depends on the output process). In effect, + * this process has "false positives". + * + * This function does not calculate new prefixes. + * + * @see #calcInUsePrefixMappingTTL(Graph) + */ +public static PrefixMapping calcInUsePrefixMapping(Graph graph) { +PrefixMapping prefixMapping = graph.getPrefixMapping() ; +if ( prefixMapping == null ) +return null ; +return calcInUsePrefixMapping(graph, prefixMapping) ; +} + +/** + * Analyse the graph to see which prefixes of the given {@link PrefixMapping} are in + * use. + * + * In the case of overlapping prefixes (where one prefix declaration is has an initial + * URI string which imatches another prefix declaration), all are included, though + * they may not be used when printing (that depends on the output process). In effect, + * this process has "false positives". + * + * This function does not calculate new prefixes. + * + * @see #calcInUsePrefixMappingTTL(Graph, PrefixMapping) + */ +public static PrefixMapping calcInUsePrefixMapping(Graph graph, PrefixMapping prefixMapping) { + +/* Method: + * + * For each URI in the data, look it up in the trie. + * after the last ":" for URNs, then see if that is a declared prefix. + * + * Exit early if every prefix is accounted for. + */ + +
[GitHub] jena pull request #432: JENA-1560: PrefixMappingUtils
Github user kinow commented on a diff in the pull request: https://github.com/apache/jena/pull/432#discussion_r194243515 --- Diff: jena-core/src/main/java/org/apache/jena/util/PrefixMappingUtils.java --- @@ -0,0 +1,361 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.jena.util; + +import java.util.* ; +import java.util.function.Consumer ; +import java.util.stream.Collectors ; + +import org.apache.jena.atlas.lib.SetUtils ; +import org.apache.jena.atlas.lib.Trie ; +import org.apache.jena.graph.Graph ; +import org.apache.jena.graph.Node ; +import org.apache.jena.graph.Triple ; +import org.apache.jena.graph.impl.WrappedGraph; +import org.apache.jena.rdf.model.Model ; +import org.apache.jena.shared.PrefixMapping ; +import org.apache.jena.shared.impl.PrefixMappingImpl ; + +public class PrefixMappingUtils { +/** + * Return a read-only graph that has the same data (RDF triples) as the one given, but has a + * prefix mapping that only includes "in use " prefixes. + * + * The prefix mappings of the two graphs are not connected. + * Later changes to the prefix mapping of the original graph are not reflected in the returned graph. + * Modifications to the triples conatained in the underlying graph are reflected. + */ +public static Graph graphInUsePrefixMapping(Graph graph) { +final PrefixMapping prefixMapping = calcInUsePrefixMapping(graph) ; +prefixMapping.lock() ; +Graph graph2 = new WrappedGraph(graph) { +@Override +public void performAdd(Triple triple) +{ throw new UnsupportedOperationException() ; } + +@Override +public void performDelete(Triple triple) +{ throw new UnsupportedOperationException() ; } + +@Override +public PrefixMapping getPrefixMapping() { +return prefixMapping ; +} +} ; +return graph2 ; +} + +/** + * Analyse the graph to see which prefixes of the graph are in use. + * + * In the case of overlapping prefixes (where one prefix declaration is has an initial + * URI string which imatches another prefix declaration), all are included, though + * they may not be used when printing (that depends on the output process). In effect, + * this process has "false positives". + * + * This function does not calculate new prefixes. + * + * @see #calcInUsePrefixMappingTTL(Graph) + */ +public static PrefixMapping calcInUsePrefixMapping(Graph graph) { +PrefixMapping prefixMapping = graph.getPrefixMapping() ; +if ( prefixMapping == null ) +return null ; +return calcInUsePrefixMapping(graph, prefixMapping) ; +} + +/** + * Analyse the graph to see which prefixes of the given {@link PrefixMapping} are in + * use. + * + * In the case of overlapping prefixes (where one prefix declaration is has an initial + * URI string which imatches another prefix declaration), all are included, though --- End diff -- s/imatches/it matches ? ---
[GitHub] jena pull request #432: JENA-1560: PrefixMappingUtils
Github user kinow commented on a diff in the pull request: https://github.com/apache/jena/pull/432#discussion_r194243525 --- Diff: jena-core/src/main/java/org/apache/jena/util/PrefixMappingUtils.java --- @@ -0,0 +1,361 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.jena.util; + +import java.util.* ; +import java.util.function.Consumer ; +import java.util.stream.Collectors ; + +import org.apache.jena.atlas.lib.SetUtils ; +import org.apache.jena.atlas.lib.Trie ; +import org.apache.jena.graph.Graph ; +import org.apache.jena.graph.Node ; +import org.apache.jena.graph.Triple ; +import org.apache.jena.graph.impl.WrappedGraph; +import org.apache.jena.rdf.model.Model ; +import org.apache.jena.shared.PrefixMapping ; +import org.apache.jena.shared.impl.PrefixMappingImpl ; + +public class PrefixMappingUtils { +/** + * Return a read-only graph that has the same data (RDF triples) as the one given, but has a + * prefix mapping that only includes "in use " prefixes. + * + * The prefix mappings of the two graphs are not connected. + * Later changes to the prefix mapping of the original graph are not reflected in the returned graph. + * Modifications to the triples conatained in the underlying graph are reflected. + */ +public static Graph graphInUsePrefixMapping(Graph graph) { +final PrefixMapping prefixMapping = calcInUsePrefixMapping(graph) ; +prefixMapping.lock() ; +Graph graph2 = new WrappedGraph(graph) { +@Override +public void performAdd(Triple triple) +{ throw new UnsupportedOperationException() ; } + +@Override +public void performDelete(Triple triple) +{ throw new UnsupportedOperationException() ; } + +@Override +public PrefixMapping getPrefixMapping() { +return prefixMapping ; +} +} ; +return graph2 ; +} + +/** + * Analyse the graph to see which prefixes of the graph are in use. + * + * In the case of overlapping prefixes (where one prefix declaration is has an initial + * URI string which imatches another prefix declaration), all are included, though + * they may not be used when printing (that depends on the output process). In effect, + * this process has "false positives". + * + * This function does not calculate new prefixes. + * + * @see #calcInUsePrefixMappingTTL(Graph) + */ +public static PrefixMapping calcInUsePrefixMapping(Graph graph) { +PrefixMapping prefixMapping = graph.getPrefixMapping() ; +if ( prefixMapping == null ) +return null ; +return calcInUsePrefixMapping(graph, prefixMapping) ; +} + +/** + * Analyse the graph to see which prefixes of the given {@link PrefixMapping} are in + * use. + * + * In the case of overlapping prefixes (where one prefix declaration is has an initial + * URI string which imatches another prefix declaration), all are included, though + * they may not be used when printing (that depends on the output process). In effect, + * this process has "false positives". + * + * This function does not calculate new prefixes. + * + * @see #calcInUsePrefixMappingTTL(Graph, PrefixMapping) + */ +public static PrefixMapping calcInUsePrefixMapping(Graph graph, PrefixMapping prefixMapping) { + +/* Method: + * + * For each URI in the data, look it up in the trie. + * after the last ":" for URNs, then see if that is a declared prefix. + * + * Exit early if every prefix is accounted for. + */ + +
[GitHub] jena pull request #432: JENA-1560: PrefixMappingUtils
Github user kinow commented on a diff in the pull request: https://github.com/apache/jena/pull/432#discussion_r194243510 --- Diff: jena-core/src/main/java/org/apache/jena/util/PrefixMappingUtils.java --- @@ -0,0 +1,361 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.jena.util; + +import java.util.* ; +import java.util.function.Consumer ; +import java.util.stream.Collectors ; + +import org.apache.jena.atlas.lib.SetUtils ; +import org.apache.jena.atlas.lib.Trie ; +import org.apache.jena.graph.Graph ; +import org.apache.jena.graph.Node ; +import org.apache.jena.graph.Triple ; +import org.apache.jena.graph.impl.WrappedGraph; +import org.apache.jena.rdf.model.Model ; +import org.apache.jena.shared.PrefixMapping ; +import org.apache.jena.shared.impl.PrefixMappingImpl ; + +public class PrefixMappingUtils { +/** + * Return a read-only graph that has the same data (RDF triples) as the one given, but has a + * prefix mapping that only includes "in use " prefixes. + * + * The prefix mappings of the two graphs are not connected. + * Later changes to the prefix mapping of the original graph are not reflected in the returned graph. + * Modifications to the triples conatained in the underlying graph are reflected. + */ +public static Graph graphInUsePrefixMapping(Graph graph) { +final PrefixMapping prefixMapping = calcInUsePrefixMapping(graph) ; +prefixMapping.lock() ; +Graph graph2 = new WrappedGraph(graph) { +@Override +public void performAdd(Triple triple) +{ throw new UnsupportedOperationException() ; } + +@Override +public void performDelete(Triple triple) +{ throw new UnsupportedOperationException() ; } + +@Override +public PrefixMapping getPrefixMapping() { +return prefixMapping ; +} +} ; +return graph2 ; +} + +/** + * Analyse the graph to see which prefixes of the graph are in use. + * + * In the case of overlapping prefixes (where one prefix declaration is has an initial + * URI string which imatches another prefix declaration), all are included, though --- End diff -- s/imatches/it matches ? ---
[GitHub] jena pull request #432: JENA-1560: PrefixMappingUtils
Github user kinow commented on a diff in the pull request: https://github.com/apache/jena/pull/432#discussion_r194243482 --- Diff: jena-core/src/main/java/org/apache/jena/util/PrefixMappingUtils.java --- @@ -0,0 +1,361 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.jena.util; + +import java.util.* ; +import java.util.function.Consumer ; +import java.util.stream.Collectors ; + +import org.apache.jena.atlas.lib.SetUtils ; +import org.apache.jena.atlas.lib.Trie ; +import org.apache.jena.graph.Graph ; +import org.apache.jena.graph.Node ; +import org.apache.jena.graph.Triple ; +import org.apache.jena.graph.impl.WrappedGraph; +import org.apache.jena.rdf.model.Model ; +import org.apache.jena.shared.PrefixMapping ; +import org.apache.jena.shared.impl.PrefixMappingImpl ; + +public class PrefixMappingUtils { +/** + * Return a read-only graph that has the same data (RDF triples) as the one given, but has a + * prefix mapping that only includes "in use " prefixes. + * + * The prefix mappings of the two graphs are not connected. + * Later changes to the prefix mapping of the original graph are not reflected in the returned graph. + * Modifications to the triples conatained in the underlying graph are reflected. + */ +public static Graph graphInUsePrefixMapping(Graph graph) { +final PrefixMapping prefixMapping = calcInUsePrefixMapping(graph) ; +prefixMapping.lock() ; +Graph graph2 = new WrappedGraph(graph) { +@Override +public void performAdd(Triple triple) +{ throw new UnsupportedOperationException() ; } + +@Override +public void performDelete(Triple triple) +{ throw new UnsupportedOperationException() ; } + +@Override +public PrefixMapping getPrefixMapping() { +return prefixMapping ; +} +} ; +return graph2 ; +} + +/** + * Analyse the graph to see which prefixes of the graph are in use. + * + * In the case of overlapping prefixes (where one prefix declaration is has an initial + * URI string which imatches another prefix declaration), all are included, though + * they may not be used when printing (that depends on the output process). In effect, + * this process has "false positives". + * + * This function does not calculate new prefixes. + * + * @see #calcInUsePrefixMappingTTL(Graph) + */ +public static PrefixMapping calcInUsePrefixMapping(Graph graph) { +PrefixMapping prefixMapping = graph.getPrefixMapping() ; +if ( prefixMapping == null ) +return null ; +return calcInUsePrefixMapping(graph, prefixMapping) ; +} + +/** + * Analyse the graph to see which prefixes of the given {@link PrefixMapping} are in + * use. + * + * In the case of overlapping prefixes (where one prefix declaration is has an initial + * URI string which imatches another prefix declaration), all are included, though + * they may not be used when printing (that depends on the output process). In effect, + * this process has "false positives". + * + * This function does not calculate new prefixes. + * + * @see #calcInUsePrefixMappingTTL(Graph, PrefixMapping) + */ +public static PrefixMapping calcInUsePrefixMapping(Graph graph, PrefixMapping prefixMapping) { + +/* Method: + * + * For each URI in the data, look it up in the trie. + * after the last ":" for URNs, then see if that is a declared prefix. + * + * Exit early if every prefix is accounted for. + */ + +
[GitHub] jena pull request #432: JENA-1560: PrefixMappingUtils
GitHub user afs opened a pull request: https://github.com/apache/jena/pull/432 JENA-1560: PrefixMappingUtils Some utility code that can be useful. You can merge this pull request into a Git repository by running: $ git pull https://github.com/afs/jena prefix-utils Alternatively you can review and apply these changes as the patch at: https://github.com/apache/jena/pull/432.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #432 commit cf3c2592e096279dfb3a16eb6205244f7bde076c Author: Andy Seaborne Date: 2018-06-09T14:38:15Z JENA-1560: PrefixMappingUtils ---